{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:////node_modules/moment/moment.js","webpack:////node_modules/@stimulus/core/dist/src/event_listener.js","webpack:////node_modules/@stimulus/core/dist/src/dispatcher.js","webpack:////node_modules/@stimulus/core/dist/src/action_descriptor.js","webpack:////node_modules/@stimulus/core/dist/src/action.js","webpack:////node_modules/@stimulus/core/dist/src/binding.js","webpack:////node_modules/@stimulus/mutation-observers/dist/src/element_observer.js","webpack:////node_modules/@stimulus/mutation-observers/dist/src/attribute_observer.js","webpack:////node_modules/@stimulus/multimap/dist/src/set_operations.js","webpack:////node_modules/@stimulus/multimap/dist/src/multimap.js","webpack:////node_modules/@stimulus/multimap/dist/src/indexed_multimap.js","webpack:////node_modules/@stimulus/mutation-observers/dist/src/token_list_observer.js","webpack:////node_modules/@stimulus/mutation-observers/dist/src/value_list_observer.js","webpack:////node_modules/@stimulus/core/dist/src/binding_observer.js","webpack:////node_modules/@stimulus/core/dist/src/context.js","webpack:////node_modules/@stimulus/core/dist/src/definition.js","webpack:////node_modules/@stimulus/core/dist/src/module.js","webpack:////node_modules/@stimulus/core/dist/src/data_map.js","webpack:////node_modules/@stimulus/core/dist/src/selectors.js","webpack:////node_modules/@stimulus/core/dist/src/target_set.js","webpack:////node_modules/@stimulus/core/dist/src/scope.js","webpack:////node_modules/@stimulus/core/dist/src/scope_observer.js","webpack:////node_modules/@stimulus/core/dist/src/router.js","webpack:////node_modules/@stimulus/core/dist/src/schema.js","webpack:////node_modules/@stimulus/core/dist/src/application.js","webpack:////node_modules/@stimulus/core/dist/src/target_properties.js","webpack:////node_modules/@stimulus/core/dist/src/controller.js","webpack:////node_modules/twilio-video/es5/util/index.js","webpack:////node_modules/events/events.js","webpack:////node_modules/twilio-video/es5/util/constants.js","webpack:////node_modules/@twilio/webrtc/lib/util/index.js","webpack:////node_modules/core-js/modules/_global.js","webpack:////node_modules/core-js/modules/_wks.js","webpack:////node_modules/core-js/modules/_export.js","webpack:////node_modules/core-js/modules/_core.js","webpack:////node_modules/util/util.js","webpack:////node_modules/core-js/modules/_is-object.js","webpack:////node_modules/twilio-video/es5/util/twilio-video-errors.js","webpack:////node_modules/core-js/modules/_ctx.js","webpack:////node_modules/core-js/modules/_an-object.js","webpack:////node_modules/core-js/modules/_descriptors.js","webpack:////node_modules/core-js/modules/_object-dp.js","webpack:////node_modules/@twilio/webrtc/lib/index.js","webpack:////node_modules/twilio-video/es5/util/log.js","webpack:////node_modules/@babel/runtime/regenerator/index.js","webpack:///(webpack)/buildin/global.js","webpack:////node_modules/core-js/modules/_hide.js","webpack:////node_modules/core-js/modules/_redefine.js","webpack:////node_modules/core-js/modules/_has.js","webpack:////node_modules/@twilio/webrtc/lib/util/sdp.js","webpack:////node_modules/twilio-video/es5/statemachine.js","webpack:////node_modules/core-js/modules/_fails.js","webpack:////node_modules/core-js/modules/_a-function.js","webpack:////node_modules/core-js/modules/_cof.js","webpack:////node_modules/core-js/modules/_iterators.js","webpack:////node_modules/core-js/modules/_for-of.js","webpack:////node_modules/twilio-video/es5/util/sdp/index.js","webpack:///(webpack)/buildin/module.js","webpack:////node_modules/core-js/modules/_property-desc.js","webpack:////node_modules/core-js/modules/_uid.js","webpack:////node_modules/core-js/modules/_to-object.js","webpack:////node_modules/core-js/modules/_to-length.js","webpack:////node_modules/core-js/modules/es6.string.iterator.js","webpack:////node_modules/core-js/modules/_to-iobject.js","webpack:////node_modules/core-js/modules/_set-to-string-tag.js","webpack:////node_modules/core-js/modules/_classof.js","webpack:////node_modules/twilio-video/es5/media/track/es5/index.js","webpack:////node_modules/twilio-video/es5/eventemitter.js","webpack:////node_modules/twilio-video/es5/util/timeout.js","webpack:////node_modules/moment-range/dist/moment-range.js","webpack:////node_modules/core-js/modules/_dom-create.js","webpack:////node_modules/core-js/modules/_shared.js","webpack:////node_modules/core-js/modules/_library.js","webpack:////node_modules/core-js/modules/_iobject.js","webpack:////node_modules/core-js/modules/_defined.js","webpack:////node_modules/core-js/modules/_to-integer.js","webpack:////node_modules/core-js/modules/_add-to-unscopables.js","webpack:////node_modules/core-js/modules/_iter-define.js","webpack:////node_modules/core-js/modules/_object-keys.js","webpack:////node_modules/core-js/modules/_shared-key.js","webpack:////node_modules/core-js/modules/_iter-detect.js","webpack:////node_modules/core-js/modules/es6.object.to-string.js","webpack:////node_modules/core-js/modules/web.dom.iterable.js","webpack:////node_modules/core-js/modules/_redefine-all.js","webpack:////node_modules/core-js/modules/_an-instance.js","webpack:////node_modules/core-js/modules/_validate-collection.js","webpack:////node_modules/core-js/modules/_new-promise-capability.js","webpack:////node_modules/@twilio/webrtc/lib/util/eventtarget.js","webpack:////node_modules/twilio-video/es5/media/track/index.js","webpack:////node_modules/twilio-video/es5/util/cancelablepromise.js","webpack:////node_modules/twilio-video/es5/createlocaltracks.js","webpack:////node_modules/twilio-video/es5/media/track/localtrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/remotetrackpublication.js","webpack:////node_modules/precond/index.js","webpack:////node_modules/twilio-video/es5/signaling/participant.js","webpack:////node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:////node_modules/process/browser.js","webpack:////node_modules/core-js/modules/_ie8-dom-define.js","webpack:////node_modules/core-js/modules/_to-primitive.js","webpack:////node_modules/core-js/modules/_array-methods.js","webpack:////node_modules/core-js/modules/_object-create.js","webpack:////node_modules/core-js/modules/_enum-bug-keys.js","webpack:////node_modules/core-js/modules/_html.js","webpack:////node_modules/core-js/modules/_iter-call.js","webpack:////node_modules/core-js/modules/_is-array-iter.js","webpack:////node_modules/core-js/modules/core.get-iterator-method.js","webpack:////node_modules/core-js/modules/_iter-step.js","webpack:////node_modules/core-js/modules/_collection-strong.js","webpack:////node_modules/core-js/modules/_set-species.js","webpack:////node_modules/core-js/modules/_meta.js","webpack:////node_modules/core-js/modules/_collection.js","webpack:////node_modules/core-js/modules/_object-pie.js","webpack:////node_modules/core-js/modules/_collection-to-json.js","webpack:////node_modules/core-js/modules/_set-collection-of.js","webpack:////node_modules/core-js/modules/_set-collection-from.js","webpack:////node_modules/core-js/modules/_species-constructor.js","webpack:////node_modules/core-js/modules/_task.js","webpack:////node_modules/core-js/modules/_perform.js","webpack:////node_modules/core-js/modules/_promise-resolve.js","webpack:////node_modules/moment/locale/af.js","webpack:////node_modules/moment/locale/ar.js","webpack:////node_modules/moment/locale/ar-dz.js","webpack:////node_modules/moment/locale/ar-kw.js","webpack:////node_modules/moment/locale/ar-ly.js","webpack:////node_modules/moment/locale/ar-ma.js","webpack:////node_modules/moment/locale/ar-sa.js","webpack:////node_modules/moment/locale/ar-tn.js","webpack:////node_modules/moment/locale/az.js","webpack:////node_modules/moment/locale/be.js","webpack:////node_modules/moment/locale/bg.js","webpack:////node_modules/moment/locale/bm.js","webpack:////node_modules/moment/locale/bn.js","webpack:////node_modules/moment/locale/bo.js","webpack:////node_modules/moment/locale/br.js","webpack:////node_modules/moment/locale/bs.js","webpack:////node_modules/moment/locale/ca.js","webpack:////node_modules/moment/locale/cs.js","webpack:////node_modules/moment/locale/cv.js","webpack:////node_modules/moment/locale/cy.js","webpack:////node_modules/moment/locale/da.js","webpack:////node_modules/moment/locale/de.js","webpack:////node_modules/moment/locale/de-at.js","webpack:////node_modules/moment/locale/de-ch.js","webpack:////node_modules/moment/locale/dv.js","webpack:////node_modules/moment/locale/el.js","webpack:////node_modules/moment/locale/en-SG.js","webpack:////node_modules/moment/locale/en-au.js","webpack:////node_modules/moment/locale/en-ca.js","webpack:////node_modules/moment/locale/en-gb.js","webpack:////node_modules/moment/locale/en-ie.js","webpack:////node_modules/moment/locale/en-il.js","webpack:////node_modules/moment/locale/en-nz.js","webpack:////node_modules/moment/locale/eo.js","webpack:////node_modules/moment/locale/es.js","webpack:////node_modules/moment/locale/es-do.js","webpack:////node_modules/moment/locale/es-us.js","webpack:////node_modules/moment/locale/et.js","webpack:////node_modules/moment/locale/eu.js","webpack:////node_modules/moment/locale/fa.js","webpack:////node_modules/moment/locale/fi.js","webpack:////node_modules/moment/locale/fo.js","webpack:////node_modules/moment/locale/fr.js","webpack:////node_modules/moment/locale/fr-ca.js","webpack:////node_modules/moment/locale/fr-ch.js","webpack:////node_modules/moment/locale/fy.js","webpack:////node_modules/moment/locale/ga.js","webpack:////node_modules/moment/locale/gd.js","webpack:////node_modules/moment/locale/gl.js","webpack:////node_modules/moment/locale/gom-latn.js","webpack:////node_modules/moment/locale/gu.js","webpack:////node_modules/moment/locale/he.js","webpack:////node_modules/moment/locale/hi.js","webpack:////node_modules/moment/locale/hr.js","webpack:////node_modules/moment/locale/hu.js","webpack:////node_modules/moment/locale/hy-am.js","webpack:////node_modules/moment/locale/id.js","webpack:////node_modules/moment/locale/is.js","webpack:////node_modules/moment/locale/it.js","webpack:////node_modules/moment/locale/it-ch.js","webpack:////node_modules/moment/locale/ja.js","webpack:////node_modules/moment/locale/jv.js","webpack:////node_modules/moment/locale/ka.js","webpack:////node_modules/moment/locale/kk.js","webpack:////node_modules/moment/locale/km.js","webpack:////node_modules/moment/locale/kn.js","webpack:////node_modules/moment/locale/ko.js","webpack:////node_modules/moment/locale/ku.js","webpack:////node_modules/moment/locale/ky.js","webpack:////node_modules/moment/locale/lb.js","webpack:////node_modules/moment/locale/lo.js","webpack:////node_modules/moment/locale/lt.js","webpack:////node_modules/moment/locale/lv.js","webpack:////node_modules/moment/locale/me.js","webpack:////node_modules/moment/locale/mi.js","webpack:////node_modules/moment/locale/mk.js","webpack:////node_modules/moment/locale/ml.js","webpack:////node_modules/moment/locale/mn.js","webpack:////node_modules/moment/locale/mr.js","webpack:////node_modules/moment/locale/ms.js","webpack:////node_modules/moment/locale/ms-my.js","webpack:////node_modules/moment/locale/mt.js","webpack:////node_modules/moment/locale/my.js","webpack:////node_modules/moment/locale/nb.js","webpack:////node_modules/moment/locale/ne.js","webpack:////node_modules/moment/locale/nl.js","webpack:////node_modules/moment/locale/nl-be.js","webpack:////node_modules/moment/locale/nn.js","webpack:////node_modules/moment/locale/pa-in.js","webpack:////node_modules/moment/locale/pl.js","webpack:////node_modules/moment/locale/pt.js","webpack:////node_modules/moment/locale/pt-br.js","webpack:////node_modules/moment/locale/ro.js","webpack:////node_modules/moment/locale/ru.js","webpack:////node_modules/moment/locale/sd.js","webpack:////node_modules/moment/locale/se.js","webpack:////node_modules/moment/locale/si.js","webpack:////node_modules/moment/locale/sk.js","webpack:////node_modules/moment/locale/sl.js","webpack:////node_modules/moment/locale/sq.js","webpack:////node_modules/moment/locale/sr.js","webpack:////node_modules/moment/locale/sr-cyrl.js","webpack:////node_modules/moment/locale/ss.js","webpack:////node_modules/moment/locale/sv.js","webpack:////node_modules/moment/locale/sw.js","webpack:////node_modules/moment/locale/ta.js","webpack:////node_modules/moment/locale/te.js","webpack:////node_modules/moment/locale/tet.js","webpack:////node_modules/moment/locale/tg.js","webpack:////node_modules/moment/locale/th.js","webpack:////node_modules/moment/locale/tl-ph.js","webpack:////node_modules/moment/locale/tlh.js","webpack:////node_modules/moment/locale/tr.js","webpack:////node_modules/moment/locale/tzl.js","webpack:////node_modules/moment/locale/tzm.js","webpack:////node_modules/moment/locale/tzm-latn.js","webpack:////node_modules/moment/locale/ug-cn.js","webpack:////node_modules/moment/locale/uk.js","webpack:////node_modules/moment/locale/ur.js","webpack:////node_modules/moment/locale/uz.js","webpack:////node_modules/moment/locale/uz-latn.js","webpack:////node_modules/moment/locale/vi.js","webpack:////node_modules/moment/locale/x-pseudo.js","webpack:////node_modules/moment/locale/yo.js","webpack:////node_modules/moment/locale/zh-cn.js","webpack:////node_modules/moment/locale/zh-hk.js","webpack:////node_modules/moment/locale/zh-tw.js","webpack:////node_modules/twilio-video/es5/media/track/audiotrack.js","webpack:////node_modules/twilio-video/es5/media/track/mediatrack.js","webpack:////node_modules/@twilio/webrtc/lib/mediastream.js","webpack:////node_modules/@twilio/webrtc/lib/rtcsessiondescription/chrome.js","webpack:////node_modules/@twilio/webrtc/lib/util/latch.js","webpack:////node_modules/@twilio/webrtc/lib/rtcsessiondescription/firefox.js","webpack:////node_modules/twilio-video/es5/media/track/localmediatrack.js","webpack:////node_modules/twilio-video/es5/media/track/sender.js","webpack:////node_modules/twilio-video/es5/media/track/transceiver.js","webpack:////node_modules/twilio-video/es5/transceiver.js","webpack:////node_modules/twilio-video/es5/media/track/videotrack.js","webpack:////node_modules/twilio-video/es5/data/transceiver.js","webpack:////node_modules/twilio-video/es5/webaudio/audiocontext.js","webpack:////node_modules/twilio-video/es5/util/validate.js","webpack:////node_modules/twilio-video/es5/media/track/trackpublication.js","webpack:////node_modules/twilio-video/es5/participant.js","webpack:////node_modules/twilio-video/es5/media/track/remotemediatrack.js","webpack:////node_modules/twilio-video/es5/stats/statsreport.js","webpack:////node_modules/twilio-video/es5/stats/localtrackstats.js","webpack:////node_modules/twilio-video/es5/stats/trackstats.js","webpack:////node_modules/twilio-video/es5/stats/remotetrackstats.js","webpack:////node_modules/backoff/index.js","webpack:////node_modules/backoff/lib/backoff.js","webpack:////node_modules/backoff/lib/strategy/strategy.js","webpack:////node_modules/backoff/lib/strategy/fibonacci.js","webpack:////node_modules/twilio-video/es5/stats/receiverreport.js","webpack:////node_modules/twilio-video/es5/stats/average.js","webpack:////node_modules/twilio-video/es5/stats/senderorreceiverreport.js","webpack:////node_modules/twilio-video/es5/stats/sum.js","webpack:////node_modules/twilio-video/es5/stats/senderreport.js","webpack:////node_modules/twilio-video/es5/stats/senderorreceiverreportfactory.js","webpack:////node_modules/twilio-video/es5/signaling/recording.js","webpack:////node_modules/twilio-video/es5/signaling/room.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitymediastats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitysendorrecvstats.js","webpack:////node_modules/twilio-video/es5/signaling/track.js","webpack:////node_modules/twilio-video/src/ws.js","webpack:////node_modules/twilio-video/es5/createlocaltrack.js","webpack:///./app/javascript/channels/consumer.js","webpack:////node_modules/@rails/actioncable/app/assets/javascripts/action_cable.js","webpack:////node_modules/moveto/dist/moveTo.js","webpack:////node_modules/chrono-node/dist/chrono.js","webpack:////node_modules/trix/dist/trix.js","webpack:////node_modules/timers-browserify/main.js","webpack:////node_modules/setimmediate/setImmediate.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/channels/meeting_room_channel.js","webpack:////node_modules/core-js/fn/array/find.js","webpack:////node_modules/core-js/modules/es6.array.find.js","webpack:////node_modules/core-js/modules/_function-to-string.js","webpack:////node_modules/core-js/modules/_array-species-create.js","webpack:////node_modules/core-js/modules/_array-species-constructor.js","webpack:////node_modules/core-js/modules/_is-array.js","webpack:////node_modules/core-js/fn/array/find-index.js","webpack:////node_modules/core-js/modules/es6.array.find-index.js","webpack:////node_modules/core-js/fn/array/from.js","webpack:////node_modules/core-js/modules/_string-at.js","webpack:////node_modules/core-js/modules/_iter-create.js","webpack:////node_modules/core-js/modules/_object-dps.js","webpack:////node_modules/core-js/modules/_object-keys-internal.js","webpack:////node_modules/core-js/modules/_array-includes.js","webpack:////node_modules/core-js/modules/_to-absolute-index.js","webpack:////node_modules/core-js/modules/_object-gpo.js","webpack:////node_modules/core-js/modules/es6.array.from.js","webpack:////node_modules/core-js/modules/_create-property.js","webpack:////node_modules/core-js/fn/map.js","webpack:////node_modules/core-js/modules/es6.array.iterator.js","webpack:////node_modules/core-js/modules/es6.map.js","webpack:////node_modules/core-js/modules/_inherit-if-required.js","webpack:////node_modules/core-js/modules/_set-proto.js","webpack:////node_modules/core-js/modules/_object-gopd.js","webpack:////node_modules/core-js/modules/es7.map.to-json.js","webpack:////node_modules/core-js/modules/_array-from-iterable.js","webpack:////node_modules/core-js/modules/es7.map.of.js","webpack:////node_modules/core-js/modules/es7.map.from.js","webpack:////node_modules/core-js/fn/object/assign.js","webpack:////node_modules/core-js/modules/es6.object.assign.js","webpack:////node_modules/core-js/modules/_object-assign.js","webpack:////node_modules/core-js/modules/_object-gops.js","webpack:////node_modules/core-js/fn/promise.js","webpack:////node_modules/core-js/modules/es6.promise.js","webpack:////node_modules/core-js/modules/_invoke.js","webpack:////node_modules/core-js/modules/_microtask.js","webpack:////node_modules/core-js/modules/_user-agent.js","webpack:////node_modules/core-js/modules/es7.promise.finally.js","webpack:////node_modules/core-js/modules/es7.promise.try.js","webpack:////node_modules/core-js/fn/set.js","webpack:////node_modules/core-js/modules/es6.set.js","webpack:////node_modules/core-js/modules/es7.set.to-json.js","webpack:////node_modules/core-js/modules/es7.set.of.js","webpack:////node_modules/core-js/modules/es7.set.from.js","webpack:////node_modules/element-closest/element-closest.js","webpack:////node_modules/mutation-observer-inner-html-shim/mutation-observer-inner-html-shim.js","webpack:///./app/javascript/controllers sync .js$","webpack:///./app/javascript/controllers/accordion_controller.js","webpack:///./app/javascript/controllers/address_controller.js","webpack:///./app/javascript/controllers/attachment_thumbnail_controller.js","webpack:///./app/javascript/controllers/booking_details_controller.js","webpack:///./app/javascript/controllers/booking_form_controller.js","webpack:////node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./app/javascript/controllers/booking_list_controller.js","webpack:///./app/javascript/controllers/breadcrumbs_controller.js","webpack:///./app/javascript/controllers/calendar_toolbar_controller.js","webpack:///./app/javascript/controllers/current_account_controller.js","webpack:///./app/javascript/controllers/date_picker_controller.js","webpack:///./app/javascript/controllers/dialog_presentation_controller.js","webpack:///./app/javascript/controllers/draggable_booking_controller.js","webpack:///./app/javascript/controllers/draggable_break_controller.js","webpack:///./app/javascript/controllers/draggable_commitment_controller.js","webpack:///./app/javascript/controllers/finalizable_controller.js","webpack:///./app/javascript/controllers/hour_grid_controller.js","webpack:///./app/javascript/controllers/item_table_controller.js","webpack:///./app/javascript/controllers/localizable_form_controller.js","webpack:///./app/javascript/controllers/meeting_room_controller.js","webpack:////node_modules/regenerator-runtime/runtime.js","webpack:////node_modules/twilio-video/es5/index.js","webpack:////node_modules/twilio-video/es5/media/track/es5/localaudiotrack.js","webpack:////node_modules/util/support/isBufferBrowser.js","webpack:////node_modules/util/node_modules/inherits/inherits_browser.js","webpack:////node_modules/twilio-video/es5/media/track/localaudiotrack.js","webpack:////node_modules/@twilio/webrtc/lib/getstats.js","webpack:////node_modules/@twilio/webrtc/lib/getusermedia.js","webpack:////node_modules/@twilio/webrtc/lib/mediastreamtrack.js","webpack:////node_modules/@twilio/webrtc/lib/rtcicecandidate.js","webpack:////node_modules/@twilio/webrtc/lib/rtcpeerconnection/index.js","webpack:////node_modules/@twilio/webrtc/lib/rtcpeerconnection/chrome.js","webpack:////node_modules/@twilio/webrtc/lib/rtcrtpsender.js","webpack:////node_modules/@twilio/webrtc/lib/rtcpeerconnection/firefox.js","webpack:////node_modules/@twilio/webrtc/lib/rtcpeerconnection/safari.js","webpack:////node_modules/@twilio/webrtc/lib/rtcsessiondescription/index.js","webpack:////node_modules/twilio-video/es5/media/track/es5/localvideotrack.js","webpack:////node_modules/twilio-video/es5/media/track/localvideotrack.js","webpack:////node_modules/twilio-video/es5/media/track/es5/localdatatrack.js","webpack:////node_modules/twilio-video/es5/media/track/localdatatrack.js","webpack:////node_modules/twilio-video/es5/data/sender.js","webpack:////node_modules/twilio-video/es5/connect.js","webpack:////node_modules/twilio-video/es5/cancelableroompromise.js","webpack:////node_modules/twilio-video/es5/webaudio/workaround180748.js","webpack:////node_modules/twilio-video/es5/webaudio/detectsilence.js","webpack:////node_modules/twilio-video/es5/encodingparameters.js","webpack:////node_modules/twilio-video/es5/iceserversource/constant.js","webpack:////node_modules/twilio-video/es5/iceserversource/nts.js","webpack:////node_modules/twilio-video/es5/ecs.js","webpack:////node_modules/twilio-video/es5/request.js","webpack:////node_modules/twilio-video/src/xmlhttprequest.js","webpack:////node_modules/twilio-video/es5/util/twilioerror.js","webpack:////node_modules/twilio-video/es5/util/timeoutpromise.js","webpack:////node_modules/twilio-video/es5/localparticipant.js","webpack:////node_modules/twilio-video/es5/media/track/localaudiotrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/localdatatrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/localvideotrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/remoteaudiotrack.js","webpack:////node_modules/twilio-video/es5/media/track/remoteaudiotrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/remotedatatrack.js","webpack:////node_modules/twilio-video/es5/media/track/remotedatatrackpublication.js","webpack:////node_modules/twilio-video/es5/media/track/remotevideotrack.js","webpack:////node_modules/twilio-video/es5/media/track/remotevideotrackpublication.js","webpack:////node_modules/twilio-video/es5/networkqualityconfiguration.js","webpack:////node_modules/twilio-video/es5/room.js","webpack:////node_modules/twilio-video/es5/remoteparticipant.js","webpack:////node_modules/twilio-video/es5/stats/localaudiotrackstats.js","webpack:////node_modules/twilio-video/es5/stats/localvideotrackstats.js","webpack:////node_modules/twilio-video/es5/stats/remoteaudiotrackstats.js","webpack:////node_modules/twilio-video/es5/stats/remotevideotrackstats.js","webpack:////node_modules/twilio-video/es5/signaling/v2/index.js","webpack:////node_modules/twilio-video/es5/signaling/v2/cancelableroomsignalingpromise.js","webpack:////node_modules/twilio-video/es5/signaling/v2/peerconnectionmanager.js","webpack:////node_modules/twilio-video/es5/signaling/v2/peerconnection.js","webpack:////node_modules/precond/lib/checks.js","webpack:////node_modules/precond/lib/errors.js","webpack:////node_modules/backoff/lib/strategy/exponential.js","webpack:////node_modules/backoff/lib/function_call.js","webpack:////node_modules/twilio-video/es5/util/sdp/simulcast.js","webpack:////node_modules/twilio-video/es5/signaling/v2/icebox.js","webpack:////node_modules/twilio-video/es5/util/filter.js","webpack:////node_modules/twilio-video/es5/signaling/v2/iceconnectionmonitor.js","webpack:////node_modules/twilio-video/es5/data/receiver.js","webpack:////node_modules/twilio-video/es5/data/transport.js","webpack:////node_modules/twilio-video/es5/media/track/receiver.js","webpack:////node_modules/twilio-video/es5/util/sdp/trackmatcher/identity.js","webpack:////node_modules/twilio-video/es5/util/sdp/trackmatcher/ordered.js","webpack:////node_modules/twilio-video/es5/util/sdp/trackmatcher/mid.js","webpack:////node_modules/twilio-video/es5/util/sdp/issue8329.js","webpack:////node_modules/twilio-video/es5/queueingeventemitter.js","webpack:////node_modules/twilio-video/es5/signaling/v2/room.js","webpack:////node_modules/twilio-video/es5/signaling/v2/dominantspeakersignaling.js","webpack:////node_modules/twilio-video/es5/signaling/v2/networkqualitymonitor.js","webpack:////node_modules/twilio-video/es5/stats/peerconnectionreportfactory.js","webpack:////node_modules/twilio-video/es5/stats/icereportfactory.js","webpack:////node_modules/twilio-video/es5/stats/icereport.js","webpack:////node_modules/twilio-video/es5/stats/peerconnectionreport.js","webpack:////node_modules/twilio-video/es5/stats/receiverreportfactory.js","webpack:////node_modules/twilio-video/es5/stats/senderreportfactory.js","webpack:////node_modules/twilio-video/es5/signaling/v2/networkqualitysignaling.js","webpack:////node_modules/twilio-video/es5/util/asyncvar.js","webpack:////node_modules/twilio-video/es5/signaling/v2/recording.js","webpack:////node_modules/twilio-video/es5/signaling/v2/remoteparticipant.js","webpack:////node_modules/twilio-video/es5/signaling/remoteparticipant.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitystats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualityaudiostats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitysendstats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitybandwidthstats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualityfractionloststats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualitylatencystats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualityrecvstats.js","webpack:////node_modules/twilio-video/es5/stats/networkqualityvideostats.js","webpack:////node_modules/twilio-video/es5/signaling/v2/remotetrackpublication.js","webpack:////node_modules/twilio-video/es5/signaling/remotetrackpublication.js","webpack:////node_modules/twilio-video/es5/signaling/v2/trackprioritysignaling.js","webpack:////node_modules/twilio-video/es5/signaling/v2/trackswitchoffsignaling.js","webpack:////node_modules/twilio-video/es5/signaling/v2/twilioconnectiontransport.js","webpack:////node_modules/twilio-video/es5/util/insightspublisher/index.js","webpack:////node_modules/twilio-video/es5/util/insightspublisher/null.js","webpack:////node_modules/twilio-video/es5/twilioconnection.js","webpack:////node_modules/twilio-video/es5/signaling/v2/localparticipant.js","webpack:////node_modules/twilio-video/es5/signaling/localparticipant.js","webpack:////node_modules/twilio-video/es5/signaling/v2/localtrackpublication.js","webpack:////node_modules/twilio-video/es5/signaling/localtrackpublication.js","webpack:////node_modules/twilio-video/es5/signaling/index.js","webpack:////node_modules/twilio-video/es5/util/support.js","webpack:///./app/javascript/controllers/meeting_room_preparation_controller.js","webpack:///./app/javascript/controllers/mobile_navigation_controller.js","webpack:///./app/javascript/controllers/payment_method_form_controller.js","webpack:///./app/javascript/controllers/payment_settings_controller.js","webpack:///./app/javascript/controllers/popover_toggle_controller.js","webpack:///./app/javascript/controllers/post_controller.js","webpack:///./app/javascript/controllers/post_form_controller.js","webpack:///./app/javascript/controllers/service_filter_controller.js","webpack:///./app/javascript/controllers/top_up_balance_form_controller.js","webpack:///./app/javascript/controllers/upload_attachment_controller.js","webpack:///./app/javascript/controllers/user_dashboard_controller.js","webpack:///./app/javascript/packs/application.js","webpack:////node_modules/@stimulus/webpack-helpers/dist/index.js","webpack:////node_modules/@rails/actiontext/app/javascript/actiontext/attachment_upload.js","webpack:////node_modules/@rails/actiontext/app/javascript/actiontext/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","factory","_typeof","iterator","obj","constructor","hookCallback","some","hooks","apply","arguments","isArray","input","Array","toString","isObject","isUndefined","isNumber","isDate","Date","map","arr","fn","res","length","push","hasOwnProp","a","b","extend","valueOf","createUTC","format","locale","strict","createLocalOrUTC","utc","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","isNaN","_d","getTime","invalidWeekday","_strict","undefined","bigHour","isFrozen","createInvalid","NaN","fun","this","len","momentProperties","copyConfig","to","from","prop","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","updateInProgress","Moment","config","updateOffset","isMoment","absFloor","number","Math","ceil","floor","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","min","lengthDiff","abs","diffs","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecationHandler","arg","args","slice","join","Error","stack","keys","deprecations","deprecateSimple","isFunction","Function","mergeConfigs","parentConfig","childConfig","Locale","set","aliases","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","max","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","token","padded","ordinal","callback","func","localeData","formatMoment","expandFormat","array","match","replace","mom","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","test","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInYear","year","isLeapYear","y","parseTwoDigitYear","parseInt","indexOf","getSetYear","makeGetSet","keepTime","set$1","month","date","daysInMonth","x","modMonth","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","handleStrictParse","monthName","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","sort","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","h","M","ms","getFullYear","setFullYear","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","concat","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","day","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","e","values","data","getLocale","defineLocale","abbr","_config","parentLocale","forEach","names","j","next","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","now","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","w","weekYear","temp","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","string","exec","configFromStringAndFormat","untruncateYear","yearStr","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","second","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","add","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","duration","years","quarters","quarter","weeks","isoWeek","days","milliseconds","unitHasDecimal","parseFloat","isDurationValid","_milliseconds","_days","_months","_data","_bubble","isDuration","absRound","round","offset","separator","utcOffset","sign","offsetFromString","chunkOffset","matcher","matches","parts","cloneWithOffset","model","diff","clone","setTime","local","getDateOffset","getTimezoneOffset","isUtc","aspNetRegex","isoRegex","createDuration","ret","diffRes","base","parseIso","isBefore","positiveMomentsDifference","inp","isAfter","createAdder","direction","period","tmp","addSubtract","isAdding","invalid","subtract","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","lang","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","proto","preParsePostFormat","time","formats","sod","startOf","calendarFormat","asFloat","that","zoneDelta","endOf","startOfDate","isoWeekday","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","toArray","toObject","toDate","toISOString","keepOffset","inspect","zone","isLocal","prefix","suffix","toJSON","unix","creationData","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","zoneAbbr","zoneName","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","index","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","shift","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","source","isFormat","_monthsShort","_monthsParseExact","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","_weekdaysParseExact","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","alias","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","version","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","DATE","TIME","TIME_SECONDS","TIME_MS","WEEK","MONTH","EventListener","eventTarget","eventName","unorderedBindings","Set","connect","addEventListener","disconnect","removeEventListener","bindingConnected","binding","bindingDisconnected","handleEvent","event","extendedEvent","stopImmediatePropagation_1","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","bindings","left","right","leftIndex","rightIndex","configurable","Dispatcher","application","eventListenerMaps","Map","started","start","eventListeners","eventListener","stop","reduce","listeners","fetchEventListenerForBinding","handleError","error","message","detail","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","createEventListener","descriptorPattern","Action","element","descriptor","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","forToken","descriptorString","content","trim","eventTargetName","window","document","eventNameSuffix","getAttribute","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","target","Element","contains","scope","containsElement","ElementObserver","delegate","_this","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","attributes","childList","subtree","refresh","takeRecords","matchElementsInTree","has","removeElement","_b","_c","addElement","mutations_1","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","elementFromNode","processTree","elementIsActive","tree","processor","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","fetch","del","size","prune","extendStatics","Multimap","valuesByKey","hasKey","hasValue","getValuesForKey","getKeysForValue","filter","__extends","setPrototypeOf","__proto__","__","_super","IndexedMultimap","keysByValue","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","tokenMatched","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","_","findIndex","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","connectAction","disconnectAction","clear","Context","controllerConstructor","bindingObserver","dispatcher","initialize","parentElement","blessControllerConstructor","bless","extendWithReflect","Controller","_newTarget","Reflect","construct","Module","definition","blessDefinition","contextsByScope","connectedContexts","connectContextForScope","fetchContextForScope","disconnectContextForScope","DataMap","getFormattedKey","setAttribute","removeAttribute","_char","attributeValueContainsToken","TargetSet","targetName","find","targetNames","getSelectorForTargetNames","findElement","findAll","findAllElements","getSelectorForTargetName","targetDescriptor","targetAttribute","Scope","targets","head","tail","filterElements","closest","controllerSelector","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","loadDefinition","unloadIdentifier","connectModule","disconnectModule","getContextForElementAndIdentifier","defaultSchema","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","done","then","__generator","body","f","g","label","sent","trys","ops","verb","v","op","TypeError","pop","Application","documentElement","router","readyState","register","load","rest","definitions","unload","identifiers","getControllerForElementAndIdentifier","defineTargetProperties","ancestors","getPrototypeOf","getAncestorsForConstructor","getOwnTargetNamesForConstructor","getTargetNamesForConstructor","properties","capitalize","_typeof2","_slicedToArray","_arr","_n","_e","_s","err","sliceIterator","_defineProperty","writable","_classCallCheck","instance","Constructor","_possibleConstructorReturn","self","ReferenceError","_toConsumableArray","arr2","constants","typeErrors","trackPriority","util","delegateMethod","wrapper","_target","hidePrivateProperties","startsWith","hideProperty","getOwnPropertyDescriptor","hidePublicProperties","props","arrayToJSON","valueToJSON","entries","json","_ref2","_ref3","_ref4","_ref5","createBandwidthProfileVideoPayload","bandwidthProfileVideo","createRSPPayload","payloadProp","transform","createRenderDimensionsPayload","createDimensionsPayload","dimensions","renderDimensions","PRIORITY_HIGH","PRIORITY_LOW","PRIORITY_STANDARD","propConversions","payload","_ref6","_ref6$payloadProp","_ref6$transform","createBandwidthProfilePayload","bandwidthProfile","createMediaSignalingPayload","dominantSpeaker","networkQuality","trackSwitchOff","transports","active_speaker","network_quality","track_priority","track_switch_off","createSubscribePayload","automaticSubscription","rules","all","revision","asLocalTrack","track","options","LocalAudioTrack","LocalVideoTrack","LocalDataTrack","MediaStreamTrack","kind","INVALID_TYPE","asLocalTrackPublication","signaling","unpublish","LocalTrackPublication","audio","LocalAudioTrackPublication","video","LocalVideoTrackPublication","LocalDataTrackPublication","word","deprecateEvents","emitter","events","log","warningsShown","on","newListener","deprecated","removeListener","difference","list1","list2","item","filterObject","filterValue","filtered","flatMap","list","mapFn","listArray","flattened","mapped","getUserAgent","navigator","userAgent","hidePrivateAndCertainPublicPropertiesInClass","klass","_klass","_class","_ref","_len","_key","subClass","superClass","_inherits","isDeepEqual","val1","val2","every","val1Keys","val2Keys","isNonArrayObject","inRange","num","makeUUID","random","oncePerTick","timeout","nextTick","clearTimeout","setTimeout","promiseFromEvents","operation","eventEmitter","successEvent","failureEvent","onSuccess","onFailure","once","getOrNull","path","defer","deferred","promise","delegateMethods","proxyProperties","propertyName","dispatchEvent","proxyProperty","legacyPromise","buildLogLevels","logLevel","media","webrtc","trackClass","trackPublicationClass","publication","withJitter","jitter","rand","isChromeScreenShareTrack","guessBrowser","ReflectOwnKeys","R","ReflectApply","receiver","ownKeys","getOwnPropertySymbols","NumberIsNaN","Number","EventEmitter","init","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","listener","_getMaxListeners","_addListener","prepend","existing","warning","emit","unshift","warned","String","count","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","copy","RangeError","setMaxListeners","getMaxListeners","doError","er","handler","addListener","prependListener","prependOnceListener","position","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","DEFAULT_ENVIRONMENT","DEFAULT_REALM","DEFAULT_REGION","DEFAULT_LOG_LEVEL","WS_SERVER","environment","region","encodeURIComponent","ECS_SERVER","realm","ECS_TIMEOUT","PUBLISH_MAX_ATTEMPTS","PUBLISH_BACKOFF_JITTER","PUBLISH_BACKOFF_MS","ICE_SERVERS_TIMEOUT_MS","ICE_SERVERS_DEFAULT_TTL","DEFAULT_ICE_SERVERS","urls","headers","X_TWILIO_ACCESSTOKEN","includes","INVALID_VALUE","REQUIRED_ARGUMENT","DEFAULT_ICE_GATHERING_TIMEOUT_MS","DEFAULT_SESSION_TIMEOUT_SEC","DEFAULT_NQ_LEVEL_LOCAL","DEFAULT_NQ_LEVEL_REMOTE","MAX_NQ_LEVEL","ICE_ACTIVITY_CHECK_PERIOD_MS","ICE_INACTIVITY_THRESHOLD_MS","iceRestartBackoffConfig","factor","initialDelay","maxDelay","randomisationFactor","reconnectBackoffConfig","subscriptionMode","MODE_COLLABORATION","MODE_GRID","MODE_PRESENTATION","trackSwitchOffMode","MODE_DISABLED","MODE_DETECTED","MODE_PREDICTED","guessBrowserVersion","chrome","firefox","safari","versions","major","minor","interceptEvent","currentListener","global","__g","store","uid","USE_SYMBOL","core","hide","redefine","ctx","$export","own","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","expProto","U","__e","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","objects","str","JSON","stringify","isNull","process","noDeprecation","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","opts","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","hash","idx","arrayToHash","isError","formatError","isRegExp","braces","toUTCString","formatProperty","formatArray","prev","cur","numLinesEst","reduceToSingleString","desc","line","ar","re","objectToString","pad","debuglog","env","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","timestamp","getHours","getMinutes","getSeconds","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","defineProperties","custom","callbackify","callbackified","maybeCb","rej","it","TwilioError","TwilioErrorByCode","createTwilioError","code","AccessTokenInvalidError","_TwilioError","AccessTokenHeaderInvalidError","_TwilioError2","AccessTokenIssuerInvalidError","_TwilioError3","AccessTokenExpiredError","_TwilioError4","AccessTokenNotYetValidError","_TwilioError5","AccessTokenGrantsInvalidError","_TwilioError6","AccessTokenSignatureInvalidError","_TwilioError7","SignalingConnectionError","_TwilioError8","SignalingConnectionDisconnectedError","_TwilioError9","SignalingConnectionTimeoutError","_TwilioError10","SignalingIncomingMessageInvalidError","_TwilioError11","SignalingOutgoingMessageInvalidError","_TwilioError12","RoomNameInvalidError","_TwilioError13","RoomNameTooLongError","_TwilioError14","RoomNameCharsInvalidError","_TwilioError15","RoomCreateFailedError","_TwilioError16","RoomConnectFailedError","_TwilioError17","RoomMaxParticipantsExceededError","_TwilioError18","RoomNotFoundError","_TwilioError19","RoomMaxParticipantsOutOfRangeError","_TwilioError20","RoomTypeInvalidError","_TwilioError21","RoomTimeoutOutOfRangeError","_TwilioError22","RoomStatusCallbackMethodInvalidError","_TwilioError23","RoomStatusCallbackInvalidError","_TwilioError24","RoomStatusInvalidError","_TwilioError25","RoomRoomExistsError","_TwilioError26","RoomInvalidParametersError","_TwilioError27","RoomMediaRegionInvalidError","_TwilioError28","RoomMediaRegionUnavailableError","_TwilioError29","RoomSubscriptionOperationNotSupportedError","_TwilioError30","RoomCompletedError","_TwilioError31","ParticipantIdentityInvalidError","_TwilioError32","ParticipantIdentityTooLongError","_TwilioError33","ParticipantIdentityCharsInvalidError","_TwilioError34","ParticipantMaxTracksExceededError","_TwilioError35","ParticipantNotFoundError","_TwilioError36","ParticipantDuplicateIdentityError","_TwilioError37","TrackInvalidError","_TwilioError38","TrackNameInvalidError","_TwilioError39","TrackNameTooLongError","_TwilioError40","TrackNameCharsInvalidError","_TwilioError41","TrackNameIsDuplicatedError","_TwilioError42","TrackServerTrackCapacityReachedError","_TwilioError43","MediaClientLocalDescFailedError","_TwilioError44","MediaServerLocalDescFailedError","_TwilioError45","MediaClientRemoteDescFailedError","_TwilioError46","MediaServerRemoteDescFailedError","_TwilioError47","MediaNoSupportedCodecError","_TwilioError48","MediaConnectionError","_TwilioError49","MediaDTLSTransportFailedError","_TwilioError50","ConfigurationAcquireFailedError","_TwilioError51","ConfigurationAcquireTurnFailedError","_TwilioError52","aFunction","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","WebRTC","getStats","getUserMedia","MediaStream","RTCIceCandidate","RTCPeerConnection","RTCSessionDescription","_createClass","protoProps","staticProps","deprecationWarningsByComponentConstructor","Log","moduleName","component","logLevels","validateLogLevels","_component","_logLevels","_warnings","getLevelByName","levels","logSpec","_levels","LOG_LEVEL_VALUES","levelName","logFn","DEBUG","deprecationWarning","deprecationWarnings","componentConstructor","getDeprecationWarnings","INFO","WARN","ERROR","customMessage","validateLogLevel","OFF","info","LOG_LEVELS_SET","LOG_LEVEL_NAMES","level","createDesc","SRC","$toString","TPL","inspectSource","safe","isSdpSemanticsSupported","chromeSdpFormat","getChromeSdpFormat","sdpSemantics","checkIfSdpSemanticsIsSupported","addTransceiver","getChromeDefaultSdpFormat","getMatches","pattern","lines","results","getTrackIds","sdp","getPlanBTrackIds","getUnifiedPlanTrackIds","getPlanBSSRCs","trackId","getMediaSections","mediaSection","kindPattern","directionPattern","getMediaSectionSSRCs","getUnifiedPlanSSRCs","mediaSections","msidAttrRegExp","matchingMediaSections","getTrackIdsToSSRCs","getSSRCs","getPlanBTrackIdsToSSRCs","getUnifiedPlanTrackIdsToSSRCs","updateTrackIdsToSSRCs","trackIdsToSSRCs","newTrackIdsToSSRCs","newSSRCsToOldSSRCs","ssrcs","oldSSRCs","newSSRCs","oldSSRC","newSSRC","replacement","getSdpFormat","RTCRtpTransceiver","updatePlanBTrackIdsToSSRCs","updateUnifiedPlanTrackIdsToSSRCs","StateMachine","_EventEmitter","initialState","states","graph","lock","newStates","transformStates","_lock","_reachableStates","newGraph","reachableFrom","_state","_states","_whenDeferreds","isLocked","when","_this2","transitionFunction","releaseLock","hasLock","releaseLockCompletely","takeLock","newState","isValidTransition","oldLock","takeLockSync","preemptionKey","transition","nameOrKey","_this3","makeLock","_this4","_whenPromise","createUnreachableError","here","there","isArrayIter","toLength","getIterFn","BREAK","RETURN","iterable","ITERATOR","iterFn","setSimulcastInMediaSection","ptToFixedBitrateAudioCodecName","0","8","createBLine","modifier","maxBitrate","createCodecMapForMediaSection","section","createPtToCodecName","codecMap","pair","pt","codecName","pts","createMidToMediaSectionMap","midsToMediaSections","mid","getMidForMediaSection","getPayloadTypesInMediaSection","ptToCodecName","rtpmapPattern","getFmtpAttributesForPt","fmtpRegex","attrs","nvPair","_nvPair$split","_nvPair$split2","midMatches","setPayloadTypesInMediaSection","payloadTypes","mLine","otherLines","unifiedPlanFilterCodecsInLocalMediaSection","localSection","remoteMidsToMediaSections","localMid","remoteSection","remotePtToCodecs","localCodecsToPts","localPts","remotePt","remoteCodec","matchingLocalPts","remoteFmtpAttrs","matchinglocalPt","localPt","localFmtpAttrs","attr","unifiedPlanGetMatchingLocalPayloadTypes","localRtxPts","rtxPt","fmtpAttrs","apt","ptMatches","unifiedPlanAddOrRewriteTrackIds","midsToTrackIds","_attributes$split","_attributes$split2","msid","trackIdToRewrite","msidRegex","revertSimulcastForNonVP8MediaSections","localSdp","localSdpWithoutSimulcast","remoteSdp","remoteMidToMediaSections","localMidToMediaSectionsWithoutSimulcast","remotePayloadTypes","setBitrateParameters","maxAudioBitrate","maxVideoBitrate","bLine","bLinePattern","bLineMatched","maxBitrateMatched","Infinity","setBitrateInMediaSection","setCodecPreferences","preferredAudioCodecs","preferredVideoCodecs","preferredCodecs","preferredPayloadTypes","remainingCodecs","remainingPayloadTypes","getReorderedPayloadTypes","codec","newSection","pcmaPayloadTypes","pcmuPayloadTypes","setSimulcast","sdpFormat","trackIdsToAttributes","vp8PayloadTypes","payloadType","unifiedPlanFilterLocalCodecs","localMediaSections","localSession","unifiedPlanAddOrRewriteNewTrackIds","activeMidsToTrackIds","trackIdsByKind","newMidsToTrackIds","trackIds","webpackPolyfill","paths","children","bitmap","id","px","defined","toInteger","$at","iterated","_t","point","IObject","def","TAG","tag","stat","cof","ARG","T","tryGet","callee","Timeout","delay","autoStart","_delay","_fn","_timeout","isSet","DateRange","extendMoment","range","rangeFromInterval","rangeFromISOString","parseZoneRange","isRange","within","end","adjacent","overlaps","excludeEnd","exclusive","excludeStart","isEqual","intersect","gs","foo","bar","trzy","symbol","__description__","__name__","keyFor","hasInstance","isConcatSpreadable","search","species","unscopables","is","createElement","copyright","propertyIsEnumerable","UNSCOPABLES","ArrayProto","LIBRARY","Iterators","$iterCreate","setToStringTag","BUGGY","returnThis","Base","NAME","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","$keys","enumBugKeys","shared","SAFE_CLOSING","riter","skipClosing","iter","classof","$iterators","getKeys","wks","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","src","forbiddenField","TYPE","PromiseCapability","C","$$resolve","$$reject","EventTarget","_eventEmitter","_require","nInstances","Track","createLog","_instanceId","_log","CancelablePromise","onCreate","onCancel","_isCancelable","_isCanceled","_onCancel","_promise","workaround180748","createLocalTrackCalls","isAudioVideoAbsent","logComponentName","localTrackOptions","tracks","debug","localTrackNameOptions","mediaStreamConstraints","workaroundWebKitBug180748","mediaStream","mediaStreamTracks","getAudioTracks","getVideoTracks","mediaStreamTrack","TrackPublication","_TrackPublication","sid","_reemitTrackEvent","isTrackEnabled","_signaling","_unpublish","isEnabled","updatedPriority","trackSid","priorityValues","setPriority","RemoteTrackPublication","_track","isSubscribed","publishPriority","isSwitchedOff","_setEnabled","_setSwitchedOff","NetworkQualityStats","connecting","connected","reconnecting","disconnected","ParticipantSignaling","_StateMachine","_enqueuedPriorityUpdates","_identity","_networkQualityLevel","_networkQualityStats","_sid","_trackPrioritySignaling","identity","preempt","networkQualityLevel","networkQualityLevels","sendTrackPriorityUpdate","trackPrioritySignaling","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","lo","hi","substring","rhex","hex","toUtf8","unescape","hexToBinaryString","bytes","fromCharCode","SparkMD5","reset","ArrayBuffer","clamp","targetArray","sourceArray","byteLength","begin","Uint8Array","append","appendBinary","contents","_buff","_length","_hash","raw","buff","_finish","getState","setState","destroy","hashBinary","first","returnUInt8Array","buffer","subarray","utf8Str2ArrayBuffer","md51_array","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","querySelector","eventInit","disabled","bubbles","cancelable","createEvent","initEvent","toArray$1","BlobRecord","checksum","url","filename","content_type","byte_size","xhr","XMLHttpRequest","open","responseType","setRequestHeader","csrfToken","getMetaValue","requestDidLoad","requestDidError","send","blob","status","response","direct_upload","directUploadData","_xhr","parse","BlobUpload","_blob$directUploadDat","DirectUpload","notify","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","parentNode","removeChild","dispatchError","signed_id","progress","loaded","defaultPrevented","alert","uploadRequestDidProgress","DirectUploadsController","form","inputs","files","controllers","createDirectUploadControllers","startNextController","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","preventDefault","disable","enable","button","focus","click","display","appendChild","submitForm","ActiveStorage","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","title","browser","argv","cwd","chdir","dir","umask","asc","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","contentWindow","write","lt","close","Properties","getIteratorMethod","redefineAll","anInstance","forOf","$iterDefine","setSpecies","DESCRIPTORS","fastKey","validate","SIZE","getEntry","entry","getConstructor","ADDER","setStrong","_k","SPECIES","KEY","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","meta","NEED","getWeak","onFreeze","fails","$iterDetect","inheritIfRequired","common","IS_WEAK","fixMethod","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","COLLECTION","of","A","mapping","nextItem","channel","port","invoke","html","cel","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","port2","port1","onmessage","postMessage","importScripts","newPromiseCapability","promiseCapability","moment","symbolMap","numberMap","pluralForm","plurals","pluralize","weekdaysParseExact","suffixes","1","5","70","80","2","7","20","50","3","4","100","6","9","10","30","60","90","relativeTimeWithPlural","forms","standalone","lastDigit","last2Digits","relativeTimeWithMutation","text","mutationTable","softMutation","lastNumber","translate","monthsParseExact","ll","lll","llll","plural","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","processRelativeTime","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","_calendarEl","monthsShortDot","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","40","isUpper","eifelerRegelAppliesToNumber","translateSingular","special","relativeTimeWithSingular","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","12","13","numbersNouns","numberNoun","hundred","ten","one","numberAsNoun","processHoursFunction","_get","parent","AudioTrack","_MediaTrack","mediaTrackTransceiver","_dummyEl","_detachElement","MediaTrack","_Track","isStarted","_attachments","_isStarted","_MediaStream","_initialize","oncanplay","_createElement","onended","_end","muted","_start","_attach","el","_selectElement","srcObject","getTracks","removeTrack","addTrack","autoplay","playsInline","els","_getAllAttachedElements","_detachElements","ChromeRTCSessionDescription","descriptionInitDict","description","_description","high","low","Latch","whenDeferreds","createUnreachableStateError","lower","raise","mozRTCSessionDescription","MediaTrackSender","AudioOrVideoTrack","_AudioOrVideoTrack","LocalMediaTrack","mediaTrackSender","_didCallEnd","_trackSender","enabled","isStopped","_MediaTrackTransceive","_senders","sender","MediaTrackTransceiver","_TrackTransceiver","TrackTransceiver","VideoTrack","width","height","onloadedmetadata","dimensionsChanged","videoWidth","videoHeight","onresize","DIMENSIONS_CHANGED","dummyEl","elem","DataTrackTransceiver","maxPacketLifeTime","maxRetransmits","ordered","NativeAudioContext","AudioContext","webkitAudioContext","AudioContextFactory","_AudioContext","_audioContext","_holders","holder","_require2","validateObject","propChecks","validateBandwidthProfile","validateRenderDimensions","validateLocalTrack","trackName","RemoteAudioTrack","RemoteAudioTrackPublication","RemoteDataTrack","RemoteDataTrackPublication","RemoteVideoTrack","RemoteVideoTrackPublication","Participant","indexed","indexedTracks","indexedAudioTracks","keyValue","indexedVideoTracks","indexedDataTracks","audioTracks","dataTracks","videoTracks","indexTracksById","_RemoteAudioTrack","_RemoteAudioTrackPublication","_RemoteDataTrack","_RemoteDataTrackPublication","_RemoteVideoTrack","_RemoteVideoTrackPublication","_audioTracks","_dataTracks","_tracks","_trackEventReemitters","_trackPublicationEventReemitters","_trackSignalingUpdatedEventCallbacks","_videoTracks","networkQualityStats","reemitTrackEvents","participant","stateChanged","trackSignaling","reemitters","reemitter","reemitSignalingStateChangedEvents","publicationEventReemitters","_getTrackPublicationEvents","publicationEvent","participantEvent","reemitTrackPublicationEvents","participantSignaling","trackSignalingAdded","trackSignalingRemoved","_addTrackPublication","trackSignalingSubscribed","_Array$from$find","_Array$from$find2","_removeTrack","trackSignalingUnsubscribed","setTrackTransceiver","updated","_removeTrackPublication","trackTransceiver","RemoteTrack","newPriority","updateSubscriberTrackPriority","_addTrack","trackEventReemitters","_getTrackEvents","eventPair","trackEvent","RemoteMediaTrack","mediaTrackReceiver","_isEnabled","_isSwitchedOff","_priority","_setPriority","LocalAudioTrackStats","LocalVideoTrackStats","RemoteAudioTrackStats","RemoteVideoTrackStats","StatsReport","peerConnectionId","statsResponse","localAudioTrackStats","report","localVideoTrackStats","remoteAudioTrackStats","remoteVideoTrackStats","LocalTrackStats","_TrackStats","statsReport","bytesSent","packetsSent","roundTripTime","TrackStats","ssrc","packetsLost","RemoteTrackStats","bytesReceived","packetsReceived","Backoff","ExponentialBackoffStrategy","FibonacciBackoffStrategy","FunctionCall","FibonacciStrategy","ExponentialStrategy","fibonacci","exponential","vargs","precond","backoffStrategy","backoffStrategy_","maxNumberOfRetry_","backoffNumber_","backoffDelay_","timeoutID_","handlers","backoff","onBackoff_","failAfter","maxNumberOfRetry","checkArgument","checkState","isDef","BackoffStrategy","initialDelay_","maxDelay_","randomisationFactor_","getMaxDelay","getInitialDelay","backoffDelay","next_","randomisationMultiple","reset_","nextBackoffDelay_","average","SenderOrReceiverReport","sum","ReceiverReport","_SenderOrReceiverRepo","bitrate","deltaPacketsLost","deltaPacketsReceived","fractionLost","phonyFractionLost","olderStats","newerStats","secondsElapsed","deltaBytesReceived","reports","summaries","summarize","summary","xs","SenderReport","rtt","newerRemoteStats","deltaBytesSent","SenderOrReceiverReportFactory","initialStats","lastStats","RecordingSignaling","DefaultRecordingSignaling","DefaultTimeout","RoomSignaling","localParticipant","sessionTimeout","_disconnect","_reconnectingError","_mediaConnectionIsReconnecting","_options","_sessionTimeout","dominantSpeakerSid","participants","recording","connectionState","iceConnectionState","maybeUpdateState","roomSignaling","signalingConnectionState","NetworkQualitySendStats","NetworkQualityRecvStats","NetworkQualityMediaStats","recv","_ref$sendStats","sendStats","_ref$recvStats","recvStats","NetworkQualityBandwidthStats","NetworkQualityFractionLostStats","NetworkQualityLatencyStats","NetworkQualitySendOrRecvStats","_ref$bandwidth","bandwidth","_ref$fractionLost","_ref$latency","latency","TrackSignaling","_error","_trackTransceiver","WebSocket","defaultCreateLocalTracks","createLocalTrack","createLocalTracks","createOptions","localTracks","createConsumer","adapters","logger","_adapters$logger","secondsSince","ConnectionMonitor","connection","visibilityDidChange","reconnectAttempts","isRunning","startedAt","stoppedAt","startPolling","getPollInterval","stopPolling","recordPing","pingedAt","recordConnect","disconnectedAt","recordDisconnect","poll","pollTimeout","reconnectIfStale","_constructor$pollInte","pollInterval","interval","multiplier","connectionIsStale","staleThreshold","disconnectedRecently","reopen","visibilityState","isOpen","INTERNAL","message_types","welcome","ping","confirmation","rejection","disconnect_reasons","unauthorized","invalid_request","server_restart","default_mount_path","protocols","supportedProtocols","Connection","consumer","subscriptions","monitor","webSocket","isActive","uninstallEventHandlers","installEventHandlers","allowReconnect","reopenDelay","getProtocol","protocol","isState","isProtocolSupported","_JSON$parse","reconnect","reload","notifyAll","willAttemptReconnect","Subscription","params","mixin","perform","command","unsubscribe","remove","Subscriptions","channelName","subscription","ensureActiveConnection","sendCommand","forget","callbackName","_len2","_key2","Consumer","_url","createWebSocketURL","href","getConfig","MoveTo","tolerance","easing","container","easeOutQuart","mergeObject","obj1","obj2","obj3","countScrollTop","HTMLElement","scrollTop","pageYOffset","easeFunctions","registerTrigger","dom","getElementById","domOptions","$1","_getOptionsFromTriggerDom","move","lastYOffset","distance","getBoundingClientRect","top","startTime","loop","currentTime","currentYOffset","timeElapsed","scroll","requestAnimationFrame","addEaseFunction","dayjs","ParsedResult","ref","tags","ParsedComponents","components","knownValues","impliedValues","imply","hasPossibleDates","isPossibleDate","isOnlyWeekday","isOnlyWeekdayComponent","isOnlyDayMonth","isOnlyDayMonthComponent","isCertain","dateMoment","adjustTimezoneOffset","currentTimezoneOffset","Parser","strictMode","isStrictMode","extract","opt","execute","remainingText","refiners","refiner","refine","findYearClosestToRef","refMoment","nextYear","lastYear","ENISOFormatParser","ENDeadlineFormatParser","ENRelativeDateFormatParser","ENMonthNameLittleEndianParser","ENMonthNameMiddleEndianParser","ENMonthNameParser","ENSlashDateFormatParser","ENSlashDateFormatStartWithYearParser","ENSlashMonthFormatParser","ENTimeAgoFormatParser","ENTimeExpressionParser","ENTimeLaterFormatParser","ENWeekdayParser","ENCasualDateParser","ENCasualTimeParser","JPStandardParser","JPCasualDateParser","PTCasualDateParser","PTDeadlineFormatParser","PTMonthNameLittleEndianParser","PTSlashDateFormatParser","PTTimeAgoFormatParser","PTTimeExpressionParser","PTWeekdayParser","ESCasualDateParser","ESDeadlineFormatParser","ESTimeAgoFormatParser","ESTimeExpressionParser","ESWeekdayParser","ESMonthNameLittleEndianParser","ESSlashDateFormatParser","FRCasualDateParser","FRDeadlineFormatParser","FRMonthNameLittleEndianParser","FRSlashDateFormatParser","FRTimeAgoFormatParser","FRTimeExpressionParser","FRWeekdayParser","FRRelativeDateFormatParser","ZHHantDateParser","ZHHantWeekdayParser","ZHHantTimeExpressionParser","ZHHantCasualDateParser","ZHHantDeadlineFormatParser","DEDeadlineFormatParser","DEMonthNameLittleEndianParser","DEMonthNameParser","DESlashDateFormatParser","DETimeAgoFormatParser","DETimeExpressionParser","DEWeekdayParser","DECasualDateParser","z","Q","$","pl","$L","$u","$offset","$d","$y","$M","$D","$W","$H","$m","$s","$ms","getMilliseconds","$utils","$g","$locale","weekStart","$set","YY","YYYY","MMM","MMMM","DD","ddd","dddd","H","HH","SSS","Z","isDayjs","en","Ls","Refiner","Filter","filteredResult","OverlapRemovalRefiner","ExtractTimezoneOffsetRefiner","ExtractTimezoneAbbrRefiner","ForwardDateRefiner","UnlikelyFormatFilter","ENMergeDateTimeRefiner","ENMergeDateRangeRefiner","ENPrioritizeSpecificDateRefiner","JPMergeDateRangeRefiner","FRMergeDateRangeRefiner","FRMergeDateTimeRefiner","DEMergeDateRangeRefiner","DEMergeDateTimeRefiner","WEEKDAY_OFFSET","MONTH_OFFSET","MONTH_PATTERN","INTEGER_WORDS","INTEGER_WORDS_PATTERN","ORDINAL_WORDS","ORDINAL_WORDS_PATTERN","TIME_UNIT","PATTERN_TIME_UNIT","collectDateTimeFragment","fragments","TIME_UNIT_PATTERN","TIME_UNIT_STRICT_PATTERN","extractDateTimeUnitFragments","timeunitText","DAYS_OFFSET","PATTERN","updateParsedComponent","startMoment","startMomentFixed","refOffset","dayOfWeek","postfix","norm","isDateOnly","isTimeOnly","isAbleToMerge","prevResult","curResult","mergeDateTimeComponent","dateComponent","timeComponent","dateTimeComponent","mergeResult","dateResult","timeResult","beginDate","beginTime","beginDateTime","endDate","endTime","endDateTime","startIndex","endIndex","mergedResult","currResult","NUMBER","zhStringToNumber","zhStringToYear","_char2","result1","result2","fromResult","toResult","fromMoment","toMoment","parser","Chrono","option","casualOption","parsers","refDate","forwardDate","allResults","parseDate","strictOption","casual","mergeOptions","commonPostProcessing","en_GB","de","es","fr","ja","addedTypes","mergedOption","strictConfig","zh","littleEndian","minuteOffset","hourOffset","STRICT_PATTERN","yearBE","MONTH_GROUP","DAY_GROUP","tday","argument","FIRST_REG_PATTERN","SECOND_REG_PATTERN","ampm","preamble","lowerText","TIME_MATCH","toHankaku","_year","alphaNum","toZenkaku","secondMatch","firstMatch","quarterOfYear","modifierFactor","dateFrom","dateTo","relative","dateTmp","patternString1","patternString2","ZHTimeExpressionParser","day1","day3","zhAMPM1","zhAMPM2","zhAMPM3","endMoment","time1","time2","timeString3","time3","unitAbbr","filteredResults","TIMEZONE_OFFSET_PATTERN","timezoneOffset","TIMEZONE_NAME_PATTERN","DEFAULT_TIMEZONE_ABBR_MAP","timezones","timezoneAbbr","isMoreSpecific","moreSpecific","textBetween","includesRelativeResult","referToSameDate","specificResult","nonSpecificResult","isWeekdayResult","splice","_handled","_value","_deferreds","onFulfilled","onRejected","race","_setImmediateFn","_setUnhandledRejectionFn","customElements","registerElement","uid_","nodes_","observer","removeTransientObservers","callback_","enqueue","records_","previousSibling","nextSibling","attributeNamespace","oldValue","transientObservedNodes","JsMutationObserver","ShadowDOMPolyfill","wrapIfNeeded","characterData","attributeOldValue","attributeFilter","characterDataOldValue","SyntaxError","removeListeners","addListeners","addListeners_","removeListeners_","addTransientObserver","attrName","relatedNode","namespaceURI","attrChange","MutationEvent","ADDITION","prevValue","_isPolyfilled","performance","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","Event","CustomEvent","initCustomEvent","Boolean","WebComponents","CustomElements","addModule","initializeModules","hasNative","isIE","useNative","HTMLImports","firstElementChild","firstChild","nextElementSibling","shadowRoot","olderShadowRoot","IMPORT_LINK_TYPE","forDocumentTree","wrap","forSubtree","upgrade","__upgraded__","__attached","attachedCallback","detachedCallback","host","URL","_URL","localName","group","DOCUMENT_FRAGMENT_NODE","groupEnd","__observer","baseURI","hasPolyfillMutations","hasThrottledAttached","createShadowRoot","watchShadow","__watched","upgradeDocumentTree","upgradeDocument","upgradeSubtree","upgradeAll","attached","createdCallback","HTMLTemplateElement","decorate","getRegisteredDefinition","upgradeWithDefinition","implementPrototype","_polyfilled","attributeChangedCallback","ctor","createElementNS","__name","lifecycle","ancestry","ready","registry","reservedTagList","readyTime","elapsed","unwrapIfNeeded","__importsParsingHook","eager","attachEvent","Trix","VERSION","ZERO_WIDTH_SPACE","NON_BREAKING_SPACE","OBJECT_REPLACEMENT_CHARACTER","composesExistingText","forcesObjectResizing","supportsInputEvents","InputEvent","BasicObject","proxyMethod","toMethod","toProperty","optional","__super__","fromJSONString","fromJSON","hasSameConstructorAs","isEqualTo","contentsForInspection","toJSONString","toUTF16String","UTF16String","box","getCacheKey","normalizeSpaces","normalizeNewlines","breakableWhitespacePattern","squishBreakableWhitespace","escapeHTML","textContent","innerHTML","summarizeStringChange","added","removed","utf16String","codepoints","fromCodepoints","_t2","copyObject","objectsAreEqual","arraysAreEqual","arrayStartsWith","spliceArray","summarizeArrayChange","getAllAttributeNames","getTextAttributeNames","getBlockAttributeNames","getBlockConfig","blockAttributes","getTextConfig","textAttributes","getListAttributeNames","listAttribute","matchesSelector","webkitMatchesSelector","msMatchesSelector","mozMatchesSelector","onElement","matchingSelector","withCallback","inPhase","times","findClosestElementFromNode","handleEventOnce","triggerEvent","elementMatchesSelector","untilNode","findInnerElement","innerElementIsActive","activeElement","elementContainsNode","findNodeFromContainerAndOffset","TEXT_NODE","childNodes","findElementFromContainerAndOffset","findChildIndexOfNode","removeNode","walkTree","onlyNodesOfType","usingFilter","expandEntityReferences","NodeFilter","SHOW_ELEMENT","SHOW_TEXT","SHOW_COMMENT","SHOW_ALL","createTreeWalker","makeElement","editable","contenteditable","dataset","className","classList","getBlockTagNames","blockTagNames","nodeIsBlockContainer","nodeIsBlockStartComment","nodeProbablyIsBlockContainer","nodeIsBlockStart","nodeIsCommentNode","COMMENT_NODE","nodeIsCursorTarget","nodeIsTextNode","trixCursorTarget","nodeIsAttachmentElement","AttachmentView","attachmentSelector","nodeIsEmptyTextNode","normalizeRange","rangeIsCollapsed","rangesAreEqual","defaultCSS","insertBefore","_t3","initialized","connectedCallback","disconnectedCallback","_n2","define","getDOMSelection","getSelection","rangeCount","getDOMRange","getRangeAt","setDOMRange","removeAllRanges","addRange","selectionChangeObserver","update","_t4","startContainer","endContainer","dataTransferIsPlainText","getData","DOMParser","parseFromString","dataTransferIsWritable","setData","keyEventIsKeyboardCommand","platform","metaKey","ctrlKey","Hash","fromCommonAttributesOfObjects","getKeysCommonToHash","merge","isEmpty","ObjectGroup","asTree","groupObjects","canBeGrouped","canBeGroupedWith","getObjects","getDepth","_t5","ObjectMap","ElementStore","trixStoreKey","_t6","Operation","isPerforming","performing","hasPerformed","performed","hasSucceeded","succeeded","hasFailed","getPromise","release","cancel","ucs2String","ucs2Length","fromUCS2String","offsetToUCS2Offset","offsetFromUCS2Offset","codePointAt","fromCodePoint","attachFiles","bold","bullets","captionPlaceholder","heading1","indent","italic","link","numbers","outdent","quote","redo","strike","undo","unlink","urlPlaceholder","GB","KB","MB","PB","TB","css","attachment","attachmentCaption","attachmentCaptionEditor","attachmentMetadata","attachmentMetadataContainer","attachmentName","attachmentProgress","attachmentSize","attachmentToolbar","attachmentGallery","nestable","terminal","breakOnReturn","plaintext","bulletList","bullet","numberList","fileSize","precision","formatter","inheritable","getComputedStyle","fontWeight","fontStyle","groupTagName","frozen","backgroundColor","serializers","Document","fromHTML","toSerializableDocument","DocumentView","render","cloneNode","deserializers","serializeToContentType","deserializeFromContentType","toolbar","getDefaultHTML","undoInterval","attachments","preview","presentation","caption","keyNames","27","37","39","46","68","72","79","level2Enabled","getLevel","pickFiles","multiple","hidden","fileInputId","_t7","ObjectView","childViews","rootView","getNodes","createNodes","invalidate","parentView","invalidateViewForObject","findViewForObject","findOrCreateCachedChildView","getCachedViewForObject","recordChildView","createChildView","cacheViewForObject","viewClass","ObjectGroupView","getAllChildViews","findElementForObject","getViewCache","isViewCachingEnabled","viewCache","shouldCacheViews","enableViewCaching","disableViewCaching","garbageCollectCachedViews","_t8","objectGroup","getChildViews","createContainerElement","_t9","didMutate","_h","findSignificantMutations","elementDidMutate","getMutationSummary","mutationIsSignificant","nodeIsMutable","nodesModifiedByMutation","nodeIsSignificant","getTextMutationSummary","getTextChangesFromCharacterData","additions","deletions","getTextChangesFromChildList","textAdded","textDeleted","getMutationsByType","_t10","FileVerificationOperation","onerror","onload","abort","InputController","handlerFor","editorWillSyncDocumentView","editorDidSyncDocumentView","requestRender","inputControllerDidRequestRender","requestReparse","inputControllerDidRequestReparse","handleInput","inputControllerWillAttachFiles","responder","insertFiles","inputControllerWillHandleInput","inputControllerDidHandleInput","Level0InputController","resetInputSummary","setInputSummary","inputSummary","isComposing","inputControllerDidAllowUnhandledInput","mutationIsExpected","preferDocument","didDelete","getSelectedRange","positionIsBlockBreak","compositionInput","getEndData","keydown","didInput","keyCode","keyName","inputControllerDidReceiveKeyboardCommand","keypress","altKey","inputControllerWillPerformTyping","insertString","selectionIsExpanded","textInput","setSelectedRange","dragenter","dragstart","serializeSelectionToDataTransfer","dataTransfer","draggedRange","inputControllerDidStartDrag","dragover","canAcceptDataTransfer","clientX","clientY","draggingPoint","inputControllerDidReceiveDragOverPoint","dragend","inputControllerDidCancelDrag","drop","setLocationRangeFromPointRange","inputControllerWillMoveText","moveTextFromRange","insertDocument","cut","clipboardData","inputControllerWillCutText","deleteInDirection","paste","testClipboardData","clipboard","getPastedHTMLUsingHiddenElement","inputControllerWillPaste","insertHTML","inputControllerDidPaste","insertText","Text","textForStringWithAttributes","types","items","getAsFile","insertFile","compositionstart","getCompositionInput","compositionupdate","compositionend","beforeinput","stopPropagation","backspace","insertLineBreak","tab","canIncreaseNestingLevel","increaseNestingLevel","selectionIsInCursorTarget","moveCursorInDirection","control","updatePosition","canDecreaseNestingLevel","decreaseNestingLevel","expandSelectionInDirection","alt","isEnded","getSelectedDocument","Files","pageXOffset","opacity","which","charCode","inputController","isSignificant","insertPlaceholder","selectPlaceholder","forgetPlaceholder","canApplyToDocument","Level2InputController","scheduledRender","composing","reparse","scheduleRender","afterRender","shiftKey","withEvent","inputTypes","inputType","selectionContainsAttachments","dragging","ArrowLeft","shouldManageMovingCursorInDirection","ArrowRight","Backspace","shouldManageDeletingInDirection","Tab","deleteByComposition","recordUndoEntry","deleteByCut","deleteByDrag","withTargetDOMRange","deleteByDragRange","deleteCompositionText","deleteContent","deleteContentBackward","deleteContentForward","deleteEntireSoftLine","deleteHardLineBackward","deleteHardLineForward","deleteSoftLineBackward","deleteSoftLineForward","deleteWordBackward","deleteWordForward","formatBackColor","activateAttributeIfSupported","formatBold","toggleAttributeIfSupported","formatFontColor","formatFontName","formatIndent","formatItalic","formatJustifyCenter","formatJustifyFull","formatJustifyLeft","formatJustifyRight","formatOutdent","formatRemove","getCurrentAttributes","removeCurrentAttribute","formatSetBlockTextDirection","formatSetInlineTextDirection","formatStrikeThrough","formatSubscript","formatSuperscript","formatUnderline","historyRedo","inputControllerWillPerformRedo","historyUndo","inputControllerWillPerformUndo","insertCompositionText","insertFromComposition","insertFromDrop","insertFromPaste","insertFromYank","insertLink","insertOrderedList","insertParagraph","insertReplacementText","insertTranspose","insertUnorderedList","inputControllerWillPerformFormatting","toggleCurrentAttribute","setCurrentAttribute","getTargetDOMRange","minLength","getTargetRanges","createRange","setStart","startOffset","setEnd","endOffset","AttachmentEditorController","attachmentPiece","didBlurCaption","didChangeCaption","didInputCaption","didKeyDownCaption","didClickActionButton","didClickToolbar","install","undos","makeElementMutable","addToolbar","isPreviewable","installCaptionEditor","uninstall","savePendingCaption","didUninstallAttachmentEditor","pendingCaption","attachmentEditorDidRequestUpdatingAttributesForAttachment","attachmentEditorDidRequestRemovingAttributeForAttachment","trixMutable","getFilename","getFormattedFilesize","placeholder","getCaption","tabIndex","scrollHeight","editCaption","attachmentEditorDidRequestRemovalOfAttachment","attachmentEditorDidRequestDeselectingAttachment","uploadProgressDelegate","piece","createContentNodes","getClassName","getHref","tabindex","hasContent","getContent","createCaptionElement","isPending","progressElement","getUploadProgress","getCaptionConfig","createTextNode","getType","getExtension","trixAttachment","trixContentType","getContentType","trixId","trixAttributes","trixSerialize","findProgressElement","attachmentDidChangeUploadProgress","PreviewableAttachmentView","previewDelegate","image","updateAttributesForImage","getURL","getPreviewURL","getWidth","getHeight","attachmentDidChangeAttributes","PieceView","getAttributes","textConfig","createAttachmentNodes","createStringNodes","preserveSpaces","styleProperty","isLast","isFirst","followsWhitespace","_t11","TextView","getPieces","BlockView","block","createComment","getLastAttribute","shouldAddExtraNewlineElement","getBlockBreakPosition","elementStore","setDocument","sync","shadowElement","getBlocks","isSynced","createDocumentFragmentForSync","lastChild","didSync","createDocumentFragment","replaceChild","CompositionController","composition","didClickAttachment","didBlur","didFocus","documentView","focused","compositionControllerDidFocus","blurPromise","compositionControllerDidBlur","findAttachmentForElement","compositionControllerDidSelectAttachment","getSerializableElement","isEditingAttachment","canSyncDocumentView","compositionControllerWillSyncDocumentView","compositionControllerDidSyncDocumentView","compositionControllerDidRender","rerenderViewForObject","refreshViewCache","attachmentEditor","installAttachmentEditorForAttachment","uninstallAttachmentEditor","getAttachmentPieceForAttachment","compositionControllerWillUpdateAttachment","updateAttributesForAttachment","removeAttributeForAttachment","compositionControllerDidRequestRemovalOfAttachment","compositionControllerDidRequestDeselectingAttachment","getAttachmentById","ToolbarController","didKeyDownDialogInput","didClickDialogButton","didClickAttributeButton","actions","resetDialogInputs","toolbarDidClickButton","getDialog","toggleDialog","toolbarDidInvokeAction","toolbarDidToggleAttribute","refreshAttributeButtons","hideDialog","updateActions","refreshActionButtons","eachActionButton","updateAttributes","eachAttributeButton","dialogIsVisible","applyKeyboardCommand","showDialog","toolbarWillShowDialog","select","toolbarDidShowDialog","willValidate","checkValidity","toolbarDidUpdateAttribute","toolbarDidRemoveAttribute","toolbarDidHideDialog","_t12","ImagePreloadOperation","Image","naturalWidth","naturalHeight","_t13","Attachment","releaseFile","didChangeAttributes","previewablePattern","attachmentForFile","attributesForFile","setFile","filesize","contentType","setAttributes","preloadURL","getFilesize","getFile","preloadFile","releasePreloadedFile","uploadProgress","setUploadProgress","previewURL","preloadingURL","setPreviewURL","attachmentDidChangePreviewURL","preload","fileObjectURL","createObjectURL","revokeObjectURL","_t14","Piece","registerType","copyWithAttributes","getValue","copyWithAdditionalAttributes","copyWithoutAttribute","getAttributesHash","getCommonAttributes","pieceList","getPieceAtIndex","eachPiece","hasSameStringValueAsPiece","hasSameAttributesAsPiece","isBlockBreak","isSerializable","getLength","canBeConsolidatedWith","_t15","AttachmentPiece","ensureAttachmentExclusivelyHasAttribute","removeProhibitedAttributes","permittedAttributes","toConsole","StringPiece","consolidateWith","splitAtOffset","SplittableList","eachObject","insertObjectAtIndex","insertSplittableListAtIndex","insertSplittableListAtPosition","splitObjectAtPosition","editObjectAtIndex","replaceObjectAtIndex","removeObjectAtIndex","getObjectAtIndex","getSplittableListInRange","splitObjectsAtRange","selectSplittableList","removeObjectsInRange","transformObjectsInRange","getObjectAtPosition","findIndexAndOffsetAtPosition","consolidate","consolidateFromIndexToIndex","findPositionAtIndexAndOffset","getEndPosition","endPosition","_t16","textForAttachmentWithAttributes","copyWithPieceList","copyUsingObjectMap","appendText","insertTextAtPosition","removeTextAtRange","replaceTextAtRange","moveTextFromRangeToPosition","getTextAtRange","addAttributeAtRange","addAttributesAtRange","removeAttributeAtRange","setAttributesAtRange","getAttributesAtPosition","getCommonAttributesAtRange","getExpandedRangeForAttributeAtOffset","getStringAtRange","getStringAtPosition","startsWithString","endsWithString","getAttachmentPieces","getAttachments","getAttachmentAndPositionById","getRangeOfAttachment","getPieceAtPosition","toSerializableText","Block","copyWithText","copyWithoutText","copyWithoutAttributes","addAttribute","removeLastAttribute","getAttributeLevel","getAttributeAtLevel","hasAttributes","getLastNestableAttribute","getNestableAttributes","getNestingLevel","lastIndexOf","getListItemAttributes","isListItem","isTerminalBlock","breaksOnReturn","findLineBreakInDirectionFromPosition","getTextWithoutBlockBreak","blockBreak","HTMLSanitizer","allowedAttributes","forbiddenProtocols","sanitize","sanitizeElements","normalizeListElementNesting","getHTML","getBody","nextNode","currentNode","sanitizeElement","previousElementSibling","implementation","createHTMLDocument","HTMLParser","referenceElement","blocks","blockElements","processedElements","getDocument","createHiddenContainer","containerElement","processNode","translateBlockElementMarginsToNewlines","removeHiddenContainer","FILTER_REJECT","FILTER_ACCEPT","isInsignificantTextNode","appendBlockForTextNode","processTextNode","appendBlockForElement","processElement","currentBlockElement","isBlockElement","getBlockAttributes","currentBlock","appendBlockForAttributesWithElement","findParentBlockElement","appendEmptyBlock","appendStringWithAttributes","getTextAttributes","appendAttachmentWithAttributes","isExtraBR","appendPiece","appendStringToTextAtIndex","prependStringToTextAtIndex","findBlockElementAncestors","reverse","whiteSpace","getMarginOfDefaultBlockElement","getMarginOfBlockElementAtIndex","bottom","marginTop","marginBottom","blockList","fromString","getBlockAtIndex","consolidateBlocks","copyUsingObjectsFromDocument","copyWithBaseBlockAttributes","replaceBlock","insertDocumentAtRange","locationFromPosition","getBlockAtPosition","mergeDocumentAtRange","getBaseBlockAttributes","getBlockCount","insertTextAtRange","locationRangeFromRange","getDocumentAtRange","eachBlockAtRange","eachBlock","getTextAtIndex","insertBlockBreakAtRange","applyBlockAttributeAtRange","expandRangeToLineBreaksAndSplitBlocks","removeLastListAttributeAtRange","exceptAttributeName","convertLineBreaksToBlockBreaksInRange","removeBlockAttributesAtRange","removeLastTerminalAttributeAtRange","consolidateBlocksAtRange","positionFromLocation","getTextAtPosition","getCharacterAtPosition","getEditCount","editCount","getCommonAttributesAtPosition","getRangeOfCommonAttributeAtPosition","getLocationRangeOfAttachment","findRangesForBlockAttribute","findRangesForTextAttribute","withValue","locationRangeFromPosition","rangeFromLocationRange","getTexts","LineBreakInsertion","startPosition","startLocation","endLocation","previousCharacter","nextCharacter","shouldInsertBlockBreak","shouldBreakFormattedBlock","shouldDecreaseListLevel","shouldPrependListItem","shouldRemoveLastBlockAttribute","Composition","currentAttributes","refreshAttachments","compositionDidChangeDocument","getSnapshot","selectedRange","loadSnapshot","compositionWillLoadSnapshot","setSelection","compositionDidLoadSnapshot","notifyDelegateOfInsertionAtRange","insertBlock","getCurrentTextAttributes","insertBlockBreak","decreaseListLevel","removeLastBlockAttribute","breakFormattedBlock","replaceHTML","getLocationRange","compositionShouldAcceptFile","insertAttachments","insertAttachment","canDecreaseBlockAttributeLevel","getBlock","decreaseBlockAttributeLevel","getExpandedRangeInDirection","getAttachmentAtRange","editAttachment","removeAttachment","stopEditingAttachment","placeholderPosition","getPosition","hasCurrentAttribute","canSetCurrentAttribute","canSetCurrentBlockAttribute","canSetCurrentTextAttribute","setBlockAttribute","setTextAttribute","notifyDelegateOfCurrentAttributesChange","removeBlockAttribute","updateCurrentAttributes","removeTextAttribute","getPreviousBlock","ignoreLock","freezeSelection","thawSelection","hasFrozenSelection","compositionDidRequestChangingSelectionToLocationRange","getSelectionManager","setLocationRange","targetLocationRange","withTargetLocationRange","withTargetRange","createLocationRangeFromDOMRange","translateUTF16PositionFromOffset","editingAttachment","expandSelectionForEditing","expandSelectionAroundCommonAttribute","getSelectedAttachments","positionIsCursorTarget","locationIsCursorTarget","compositionDidRemoveAttachment","compositionDidAddAttachment","compositionDidEditAttachment","compositionDidChangeAttachmentPreviewURL","compositionDidStartEditingAttachment","compositionDidStopEditingAttachment","compositionDidChangeCurrentAttributes","compositionDidPerformInsertionAtRange","_t17","UndoManager","undoEntries","redoEntries","consolidatable","createEntry","snapshot","canUndo","canRedo","attachmentGalleryFilter","applyBlockAttribute","findRangesOfBlocks","findRangesOfPieces","moveSelectedRangeForward","Editor","selectionManager","_t18","undoManager","filters","loadDocument","loadHTML","loadJSON","getClientRectAtPosition","getClientRectAtLocationRange","activateAttribute","attributeIsActive","canActivateAttribute","deactivateAttribute","_t19","ManagedAttachment","attachmentManager","requestRemovalOfAttachment","_t20","AttachmentManager","managedAttachments","manageAttachment","attachmentIsManaged","attachmentManagerDidRequestRemovalOfAttachment","unmanageAttachment","LocationMapper","findLocationFromContainerAndOffset","findAttachmentElementParentForNode","findContainerAndOffsetFromLocation","findNodeAndOffsetFromLocation","getSignificantNodesForIndex","PointMapper","createDOMRangeFromPoint","caretPositionFromPoint","offsetNode","caretRangeFromPoint","createTextRange","moveToPoint","getClientRectsForDOMRange","getClientRects","SelectionChangeObserver","selectionManagers","registerSelectionManager","unregisterSelectionManager","notifySelectionManagersOfSelectionChange","selectionDidChange","domRange","SelectionManager","didMouseDown","locationMapper","pointMapper","lockCount","currentLocationRange","lockedLocationRange","createDOMRangeFromLocationRange","updateCurrentLocationRange","getLocationAtPoint","unlock","clearSelection","selectionIsCollapsed","collapsed","domRangeWithinElement","pauseTemporarily","paused","locationRangeDidChange","EditorController","editorElement","compositionController","toolbarController","toolbarElement","editor","notifyEditorElement","handlingInput","updateCurrentActions","pasting","pastedRange","attachmentLocationRange","loadingSnapshot","isFocused","requestedLocationRange","compositionRevisionWhenLocationRangeRequested","renderedCompositionRevision","runEditorFilters","requestedRender","recordTypingUndoEntry","recordFormattingUndoEntry","locationRangeBeforeDrag","invokeAction","selectionFrozen","dialogName","canInvokeAction","actionIsExternal","actionName","getCurrentActions","currentActions","updateInputElement","setInputElementValue","documentChangedSinceLastRender","getUndoContext","getLocationContext","getTimeContext","ownerDocument","queryCommandSupported","execCommand","inputElement","editorController","defaultValue","registerResetListener","unregisterResetListener","resetListener","resetBubbled","clearFn","_id","_clearFn","setInterval","clearInterval","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","onreadystatechange","task","channels","require","webpackContext","req","webpackContextResolve","meetingRoom","subscribe","meetingRoomUUID","received","meetingRoomController","meetingRoomTarget","$find","forced","speciesConstructor","TO_STRING","toIObject","arrayIndexOf","toAbsoluteIndex","IS_INCLUDES","fromIndex","ObjectProto","createProperty","arrayLike","aLen","mapfn","$defineProperty","addToUnscopables","Arguments","strong","check","buggy","pIE","gOPD","gOPS","$assign","K","getSymbols","isEnum","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","v8","$Promise","isNode","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","isReject","chain","_v","ok","reaction","exited","fail","domain","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","$resolve","executor","capability","remaining","$index","alreadyCalled","un","macrotask","Observer","WebKitMutationObserver","last","flush","toggle","onFinally","ElementProto","toggleStep","initialStep","stepContainer","indexOfStep","stepContainerTargets","show","animationTimeout","currentStep","postcode","Rails","ajax","postcodesPath","dataType","success","city","cityFieldTarget","postcodeFieldTarget","hasThumbnailTarget","checked","thumbnailTarget","hasFeedbackButtonTarget","showFeedbackDialog","feedbackButtonTarget","startsAtObserver","startsAtLabel","startsAtData","startsAtDate","startsAtInputTarget","confirmBookingButtonTarget","dateAndTimepickerStepSummaryTarget","updateDataLabelText","startsAtLabelTargets","bookableObserver","pickAvailableTimeButtonTarget","bookableStepSummaryTarget","bookableDetailsLabelTargets","bookableProviderLabelTargets","bookablePriceLabelTargets","bookableMeetingRoomsLabelTargets","bookableLocationLabelTargets","bookableDurationLabelTargets","bookableCapacityLabelTargets","toggleMeetingRoomsLabel","filterBookableBanner","resetCouponCode","startsAt","Proxy","bookable","isPreviousMonthPassed","startDate","previousStartDate","nextStartDate","filterBookables","accordionController","category","categorySelectTarget","details","provider","price","meeting_rooms","location","capacity","bookables","bookablesByCategory","bookableListTarget","bookableInput","pickBookable","bookableId","currentTarget","bookablePanel","bookableDetails","bookableProvider","bookablePrice","meetingRooms","bookableMeetingRooms","bookableLocation","bookableCapacity","bookableDuration","fetchBookableTimetable","filterQuestions","timetableCalendarTarget","filterTimeslots","getDateClassFor","availableTimeslotsTarget","timetableCalendarLoaderTarget","timetableBookablePath","refreshCalendar","calendarCellTargets","innerText","calendarTitleTarget","previousMonthTarget","calendarCell","getCalendarCell","calendarCellInner","timeslot","timeslotCell","importNode","timeslotTemplateTarget","todayCalendarCellID","initialDate","todayCalendarCell","calendarCellID","dateClass","filteredTimeslots","noAvailableTimeslotsInfoPanelTarget","questionsTarget","couponCodeToggleButtonTarget","couponCodeFieldTarget","serviceBannersTarget","valueOn","trueLocale","bookableMeetingRoomsLabelTarget","nilLocale","accordionTarget","getElementsByTagName","hasRefreshButtonTarget","refreshButtonTarget","phoneNumber","phoneNumberDialogTextContainer","hasListTarget","listTarget","cursor","Turbolinks","visit","savedZoomLevel","localStorage","getItem","zoomLevel","zoomToLevel","zoomSliderTarget","calendarElement","setItem","stateObserver","webkit","messageHandlers","currentAccount","pushNotifierDeviceTokens","isMobileApp","pushNotifierDeviceToken","deviceType","device_token","removePushNotifierDeviceToken","renderer","renderCalendar","highlightedDate","by","calendarTarget","formattedDate","proposedDate","datasetDate","isTimeActive","coordinates","getCoordinates","column","row","datePickerElement","outerHTML","currentMonthLabelTarget","hourFieldTarget","minuteFieldTarget","dateFieldTarget","readOnly","isTouch","timePickerTarget","dismiss","parsedDate","chrono","nextHour","parserDateFormat","formattedTime","blur","popoverTarget","setHours","dialogElement","dialogSelector","dialog","bookingID","bookingId","moveBookingPath","hasBookingListTarget","loader","bookingListTarget","breakID","breakId","moveBreakPath","serviceID","serviceId","newBookingLink","newBookingPath","hasSubmitButtonTarget","submitButtonTarget","hasInputTarget","inputTarget","hasInfoPanelTarget","infoPanelTarget","confirmationMessage","confirm","hasFormTarget","submitButton","formTarget","hasTimeIndicatorTarget","timeIndicatorTarget","prepareTimeIndicator","startRefreshing","stopRefreshing","midnight","minutesSinceMidnight","timeIndicatorTop","localizedTime","timeIndicatorLabelTarget","refreshTimeIndicator","newItemTemplate","newItemTarget","itemRow","isOnboarding","showOnboarding","hideOnboarding","onboardingTarget","addButtonTarget","tableTarget","newItemRowTemplate","newItemRow","destroyField","displayValue","localeSelectTarget","Video","showStartButton","disableStartButton","hideEndButton","disableEndButton","hideStartButton","enableStartButton","preparePreview","showEndButton","enableEndButton","startTimer","endTimer","showMessage","uuid","connectionStatus","meetingRoomChannel","disconnectRoom","apiPath","isExternal","startButtonTarget","accessToken","isWaiting","meetingRoomAccessToken","addParticipantTracks","participantElement","remoteMediaTarget","attach","room","detach","isPreviews","localVideoTrack","localMediaTarget","childElementCount","startTimestamp","timerInterval","callDurationTarget","startedMessage","endButtonTarget","adapter","currentAccountController","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","displayName","isGeneratorFunction","genFun","mark","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","createLocalAudioTrack","createLocalVideoTrack","isSupported","LocalAudioTrackClass","fill","readUInt8","superCtor","super_","TempCtor","_LocalMediaAudioTrack","mixinLocalMediaTrack","guess","guessVersion","isChrome","isFirefox","isSafari","chromeMajorVersion","standardizeChromeOrSafariActiveIceCandidatePairStats","stats","activeCandidatePairStats","nominated","activeLocalCandidateStats","localCandidateId","activeRemoteCandidateStats","remoteCandidateId","standardizedCandidateStatsKeys","standardizedLocalCandidateStatsKeys","standatdizedLocalCandidateStatsReport","keyInfo","standardizedRemoteCandidateStatsReport","localCandidate","remoteCandidate","standardizeFirefoxActiveIceCandidatePairStats","ffKeys","candidateTypes","peerreflexive","relayed","serverreflexive","peerConnection","localOrRemote","getSendersOrReceivers","senderOrReceiver","stream","chromeOrSafariGetTrackStats","ssrcReport","standardizedStats","frameWidthInput","frameHeightInput","frameWidthSent","frameHeightSent","frameWidthReceived","frameHeightReceived","frameRateInput","frameRateSent","frameRateReceived","standardizeChromeLegacyStats","inbound","outbound","isRemote","remoteSource","third","getStatValue","mimeType","frameWidth","frameHeight","framesPerSecond","audioLevel","audioOutputLevel","audioInputLevel","standardizeChromeOrSafariStats","localAudioTracks","localVideoTracks","remoteAudioTracks","remoteVideoTracks","activeIceCandidatePair","trackStatsPromises","triple","statsArrayName","testForChrome","testForFirefox","remoteId","standardizeFirefoxStats","firefoxGetTrackStats","testForSafari","getTrackStats","getActiveIceCandidatePairStats","activeIceCandidatePairStatsReport","_getStats","constraints","mediaDevices","webkitGetUserMedia","mozGetUserMedia","_getUserMedia","mozRTCIceCandidate","RTCRtpSenderShim","sdpUtils","ChromeRTCPeerConnection","configuration","newConfiguration","iceTransportPolicy","iceTransports","_appliedTracksToSSRCs","_localStream","_peerConnection","_pendingLocalOffer","_pendingRemoteOffer","_rolledBackTracksToSSRCs","_sdpFormat","_signalingStateLatch","_tracksToSSRCs","localDescription","remoteDescription","signalingState","shimDataChannel","ontrack","addStream","setDescription","offer","pendingLocalOffer","pendingRemoteOffer","intermediateState","setLocalDescription","answer","setRemoteDescription","setRemoteAnswer","previousSignalingState","needsMaxPacketLifeTimeShim","RTCDataChannel","dataChannel","maxRetransmitTime","tracksToSSRCs","removeStream","getSenders","addIceCandidate","candidate","createAnswer","createOffer","createDataChannel","dataChannelDict","shimDataChannelInit","FirefoxRTCSessionDescription","updateTracksToSSRCs","needsWorkaroundForBug1480277","FirefoxRTCPeerConnection","_initiallyNegotiatedDtlsRole","_isClosed","_rollingBack","iceGatheringState","overwriteWithInitiallyNegotiatedDtlsRole","dispatchEventToSelf","rollback","onceRolledBack","saveInitiallyNegotiatedDtlsRole","remote","dtlsRole","passive","idp","replaceTrack","isUnifiedPlan","SafariRTCPeerConnection","_audioTransceiver","_videoTransceiver","hasReceiversForTracksOfKind","getTransceivers","transceiver","offerToReceiveAudio","offerToReceiveVideo","LocalVideoTrackClass","_LocalMediaVideoTrack","LocalDataTrackClass","DefaultDataTrackSender","dataTrackSender","DataTrackSender","reliable","_DataTrackTransceiver","maxRetransmtis","_clones","_dataChannels","_addClone","_removeClone","createCancelableRoomPromise","EncodingParametersImpl","ConstantIceServerSource","NTSIceServerSource","LocalParticipant","_require3","NetworkQualityConfigurationImpl","Room","SignalingV2","_require4","_require5","safariVersion","connectCalls","didPrintSafariWarning","didPrintDscpTaggingWarning","isSafariWithoutVP8Support","safariMajorVersion","safariMinorVersion","createLocalParticipant","encodingParameters","networkQualityConfiguration","localParticipantSignaling","createLocalParticipantSignaling","createRoom","createRoomSignaling","iceServerSource","iceServers","roomSignalingParams","getLocalTracks","handleLocalTracks","shouldStopLocalTracks","normalizeVideoCodecSettings","nameOrSettings","settings","simulcast","shouldPrintDscpTaggingWarning","enableDscp","dscpTagging","abortOnIceServersTimeout","iceServersTimeout","insights","wsServer","Signaling","ntsIceServerSourceOptions","abortOnTimeout","cancelableRoomPromise","cancelableRoomSignalingPromise","cancelationError","isCanceled","getCancelableRoomSignalingPromise","detectSilence","retry","audioContext","getOrCreate","doWorkaround","isSilent","createMediaStreamSource","analyser","createAnalyser","fftSize","samples","timeoutDidFire","doDetectSilence","getByteTimeDomainData","sample","shouldEmitChanged","maxKindBitrate","instances","_instance","_iceServers","ECS","TimeoutPromise","defaultTTL","getConfiguration","defaultIceServers","ecsServer","_abortOnTimeout","_currentPoll","_defaultIceServers","_defaultTTL","_ecsServer","_getConfiguration","_nextPoll","_status","_stopped","_token","client","configUrl","service","sdk_version","alreadyStopped","configWithTimeout","iceServersAndTTL","nts","ice_servers","ttl","parseECSConfig","isTimedOut","request","parseJsonTextFromECS","jsonText","postData","post","responseText","errorText","XHR","headerName","withCredentials","_Error","initialTimeout","timedOut","timer","_deferred","_isTimedOut","_timedOut","_timer","_promise2","_Participant","tracksToStop","localTrack","_LocalAudioTrack","_LocalDataTrack","_LocalVideoTrack","_MediaStreamTrack","_LocalAudioTrackPublication","_LocalDataTrackPublication","_LocalVideoTrackPublication","_tracksToStop","signalingRegion","_handleTrackSignalingEvents","addedTrack","_addLocalTrack","removedTrack","localTrackDisabled","localTrackEnabled","localTrackStopped","_getOrCreateLocalTrackPublication","getPublication","localTrackPublication","getTrackPublication","unpublishTrack","localTrackOrMediaStreamTrack","trackPublication","addedLocalTrack","publishTrack","setNetworkQualityConfiguration","setParameters","publishFailed","unpublishedTracks","unpublishedTrack","trackPublications","_LocalTrackPublicatio","_RemoteMediaAudioTrac","mixinRemoteMediaTrack","_RemoteTrackPublicati","dataTrackReceiver","_RemoteMediaVideoTrac","RemoteParticipant","_participants","isRecording","mediaRegion","connectParticipant","_unsubscribeTracks","handleSignalingEvents","responses","rewriteLocalTrackIds","trackStats","trackStat","trackSender","getSender","eventOrPair","reemit","remoteTrack","_subscribed","addedPublication","_unsubscribe","unsubscribedTrack","removedPublication","_LocalTrackStats","captureDimensions","captureFrameRate","frameRate","_RemoteTrackStats","defaultCreateCancelableRoomSignalingPromise","LocalParticipantV2","_Signaling","createCancelableRoomSignalingPromise","_createCancelableRoomSignalingPromise","_wsServer","DefaultPeerConnectionManager","DefaultRoomV2","DefaultTransport","PeerConnectionManager","RoomV2","Transport","transport","peerConnectionManager","trackSenders","trackV2","setConfiguration","setTrackSenders","createAndOffer","dequeue","transportOptions","wsServerInsights","InsightsPublisher","NullInsightsPublisher","iceServerSourceStatus","setSignalingRegion","signaling_region","PeerConnectionV2","QueueingEventEmitter","_QueueingEventEmitter","audioContextFactory","offerOptions","_audioContextFactory","_closedPeerConnectionIds","_configuration","_configurationDeferred","_connectionState","_dummyAudioTrackSender","createDummyAudioMediaStreamTrack","_encodingParameters","_iceConnectionState","_iceServerSource","_dataTrackSenders","_lastConnectionState","_lastIceConnectionState","_mediaTrackSenders","_offerOptions","_peerConnections","_preferredCodecs","_PeerConnectionV2","peerConnectionStates","peerConnectionIds","peerConnectionState","_close","_PeerConnectionV","dummyAudioMediaStreamTrack","updateConnectionState","updateIceConnectionState","addDataTrackSender","addMediaTrackSender","_getOrCreate","getTrackReceivers","setIceReconnectTimeout","dataTrackSenders","mediaTrackSenders","changes","getDataTrackSenderChanges","getMediaTrackSenderChanges","getTrackSenderChanges","removeDataTrackSender","removeMediaTrackSender","isApplicationSectionNegotiated","applyTrackSenderChanges","synced","_closeAbsentPeerConnections","peerConnections","createMediaStreamDestination","toRank","checking","completed","failed","closed","fromRank","createFromRank","summarizeIceOrPeerConnectionStates","state1","state2","pcm","pcv2","DefaultBackoff","DefaultMediaStream","DefaultRTCIceCandidate","DefaultRTCPeerConnection","DefaultRTCSessionDescription","getStatistics","_require6","_require7","IceBox","DefaultIceConnectionMonitor","DataTrackReceiver","MediaTrackReceiver","IdentityTrackMatcher","OrderedTrackMatcher","MIDTrackMatcher","workaroundIssue8329","isRTCRtpSenderParamsSupported","RTCRtpSender","getParameters","updating","IceConnectionMonitor","localMediaStream","chromeSpecificConstraints","googDscp","_appliedTrackIdsToAttributes","_dataTrackReceivers","_descriptionRevision","_didGenerateLocalCandidates","_enableDscp","_isChromeScreenShareTrack","_iceGatheringFailed","_iceGatheringTimeout","_handleIceGatheringTimeout","_iceRestartBackoff","_isIceConnectionInactive","_isIceLite","_isIceRestartBackoffInProgress","_isRestartingIce","_isUnifiedPlan","_isRTCRtpSenderParamsSupported","_lastStableDescriptionRevision","_localCandidates","_localCodecs","_localCandidatesRevision","_localDescriptionWithoutSimulcast","_localDescription","_localMediaStream","_localUfrag","_remoteCodecMaps","_rtpSenders","_iceConnectionMonitor","_mediaTrackReceivers","_needsAnswer","_negotiationRole","_preferredAudioCodecs","_preferredVideoCodecs","_shouldApplySimulcast","codecSettings","_queuedDescription","_iceReconnectTimeout","_recycledTransceivers","_replaceTrackPromises","_remoteCandidates","_setBitrateParameters","_setCodecPreferences","_setSimulcast","_revertSimulcastForNonVP8MediaSections","_RTCIceCandidate","_RTCPeerConnection","_RTCSessionDescription","_shouldOffer","_shouldRestartIce","_trackIdsToAttributes","_trackMatcher","updateEncodingParameters","_handleConnectionStateChange","_handleDataChannelEvent","_handleIceCandidateEvent","_handleIceConnectionStateChange","_handleIceGatheringStateChange","_handleSignalingStateChange","_handleTrackEvent","_initiateIceRestart","candidates","_addIceCandidate","_ref7","recycledTransceivers","localCodec","remoteCodecMap","takeRecycledTransceiver","oldTrackId","ufrag","getUfrag","setUfrag","_addIceCandidates","_setRemoteDescription","updatedSdp","_setLocalDescription","_checkIceBox","_updateDescription","_maybeReoffer","_this5","_this6","_answer","didReoffer","_offer","ice","_this7","isIceConnectedOrComplete","_initiateIceRestartBackoff","_this8","signaledTrackId","trackReceiver","shouldReoffer","senders","shouldOffer","sendersOfKind","isSenderOfKind","hasDataTrack","hasApplicationMediaSection","_this9","iceRestart","activeTransceivers","stopped","assignedTransceivers","sdp1","unassignedTransceivers","newTrackIdsByKind","sdp2","_this10","_this11","_addOrRewriteLocalTrackIds","negotiationCompleted","_this12","sdpWithoutSimulcastForNonVP8MediaSections","_rollbackAndApplyOffer","_this13","_handleGlare","iceState","addDataChannel","_addOrUpdateTransceiver","addSender","_this14","bracket","tryTransition","removeDataChannel","removeSender","setDelay","_this15","updates","_updateIce","_this16","rewriteTrackId","rewriteTrackIds","bundlePolicy","rtcpMuxPolicy","currentDirection","shouldRecycleTransceiver","updateRecycledTransceivers","updateLocalCodecs","updateRemoteCodecMaps","_pcv2$_encodingParame","maxBitrates","encodings","encoding","removeMaxBitrate","setMaxBitrate","networkPriority","errors","failCheck","ExceptionConstructor","messageFormat","formatArgs","captureStackTrace","failArgumentCheck","IllegalArgumentError","failStateCheck","IllegalStateError","typeOf","typeCheck","expect","checkIsDef","checkIsDefAndNotNull","checkIsString","checkIsArray","checkIsNumber","checkIsBoolean","checkIsFunction","checkIsObject","factor_","DEFAULT_FACTOR","function_","arguments_","lastResult_","numRetries_","backoff_","strategy_","failAfter_","retryPredicate_","DEFAULT_RETRY_PREDICATE_","state_","State_","PENDING","RUNNING","COMPLETED","ABORTED","isCompleted","isAborted","setStrategy","strategy","retryIf","retryPredicate","getLastResult","getNumRetries","doCallback_","backoffFactory","doCall_","handleBackoff_","isRetry","eventArgs","handleFunctionCallback_","createSSRC","TrackAttributes","streamId","cName","isSimulcastEnabled","primarySSRCs","rtxPairs","simulcastSSRCs","primarySSRC","isSimSSRC","excludeRtx","rtxPair","simSSRCs","attrLines","rtxPairLines","simGroupLines","createPlanBSSRCAttributeTuples","createUnifiedPlanSSRCAttributeTuples","_flatMap","_flatMap2","createTrackIdsToAttributes","getSimulcastSSRCs","getSSRCRtxPairs","planb","unified","createSSRCAttributeTuples","tuple","trackAttributes","attribute","getSSRCAttribute","addSSRC","newTrackIdsToAttributes","newTrackIds","trackIdsToAdd","trackIdsToIgnore","addSimulcastSSRCs","relevantTrackIds","relevantTrackAttributes","relevantSdpLines","toSdpLines","sectionLines","_filter","getKey","isLessThanOrEqualTo","_ufrag","toMap","oldIceState","oldCandidates","_getKey","_getValue","_isLessThanOrEqualTo","_map","activityCheckPeriodMs","inactivityThresholdMs","_activityCheckPeriodMs","_inactivityThresholdMs","_lastActiveStats","activePairStat","onIceConnectionInactive","_getIceConnectionStats","iceStats","_lastActivity","DataTransport","_dataChannel","binaryType","_messageQueue","_publish","publish","unmatched","mAndM","_match","ids","_midsToTrackIds","sections","trackIdMatches","mediaSectionWorkaround","rtpmapRegex","rtpmap","fmtpmapRegex","deleteDuplicateRtxPts","codecNameToPts","createCodecNameToPts","rtxPts","invalidRtxPts","associatedPtToRtxPt","rtxPtToAssociatedPt","associatedPtToRtxPts","createAssociatedPtToRtxPt","fmtpPattern","createRtxPtToAssociatedPt","unassociatedRtxPts","unassociatedPts","endsWith","addFmtpAttributeForRtxPt","deleteFmtpAttributesForRtxPt","deleteRtpmapAttributesForRtxPt","descriptionInit","_queuedEvents","queuedEvent","DominantSpeakerSignaling","NetworkQualityMonitor","NetworkQualitySignaling","RecordingV2","RemoteParticipantV2","TrackPrioritySignaling","TrackSwitchOffSignaling","_RoomSignaling","session_timeout","statsPublishIntervalMs","setBandwidthProfile","_dominantSpeakerSignaling","_DominantSpeakerSignaling","_dominantSpeakerSignalingPromise","_disconnectedParticipantSids","_NetworkQualityMonitor","_NetworkQualitySignaling","_lastBandwidthProfileRevision","bandwidthProfileRevision","_networkQualityMonitor","_networkQualityMonitorPromise","_networkQualityConfiguration","_peerConnectionManager","_published","_publishedRevision","_RemoteParticipantV2","_subscribedRevision","_subscriptionFailures","_trackPriorityPromise","_trackSwitchOffPromise","_trackSwitchOffSignaling","_TrackPrioritySignaling","_TrackSwitchOffSignaling","_transport","_trackReceiverDeferreds","media_region","roomV2","localParticipantUpdated","_publishNewLocalParticipantState","renegotiate","handleLocalParticipantEvents","_publishPeerConnectionState","_addTrackReceiver","setNetworkQualityLevel","handlePeerConnectionEvents","_update","handleTransportEvents","intervalMs","publishEvent","audioTrackStats","videoTrackStats","availableIncomingBitrate","availableOutgoingBitrate","consentRequestsSent","currentRoundTripTime","lastPacketReceivedTimestamp","lastPacketSentTimestamp","readable","requestsReceived","requestsSent","responsesReceived","responsesSent","retransmissionsReceived","retransmissionsSent","totalRoundTripTime","transportId","candidateType","deleted","ip","relayProtocol","replaceNullsWithDefaults","onStateChanged","periodicallyPublishStats","_getOrCreateTrackReceiverDeferred","didDisconnect","_teardownDominantSpeakerSignaling","_teardownNetworkQualityMonitor","_deleteTrackReceiverDeferred","trackSidsToTrackSignalings","participantState","_getTrackReceiver","setTrackPrioritySignaling","_localParticipant","bandwidth_profile","_maybeAddBandwidthProfile","_getState","peer_connections","roomState","subscribed","trackState","subscribedTrackSids","participantsToKeep","_getOrCreateRemoteParticipant","_getTrackSidsToTrackSignalings","subscribeFailed","published","media_signaling","_setupDataTransportBackedDominantSpeakerSignaling","_setupDataTransportBackedNetworkQualityMonitor","_setupTrackPrioritySignaling","_setupTrackSwitchOffMonitor","_teardownTrackPrioritySignaling","trackPriorityPromise","toDataTransport","trackSwitchOffSignaling","tracksOff","tracksOn","setSwitchedOff","_teardownTrackSwitchOff","trackSwitchOffPromise","_setupTrackSwitchOff","dominantSpeakerSignalingPromise","dominantSpeakerSignaling","_setDominantSpeakerSignaling","networkQualityMonitorPromise","networkQualitySignaling","networkQualityMonitor","_setNetworkQualityMonitor","setDominantSpeaker","loudestParticipantSid","remoteLevels","filterAndAddLocalTrackSids","filterAndAddRemoteTrackSids","filterAndAddTrackSids","idToSid","localTrackStats","remoteTrackStats","mediaSignalingTransport","_loudestParticipantSid","_setLoudestParticipantSid","PeerConnectionReportFactory","manager","_factories","_manager","reportsOrNullPromises","pc","reportsOrNull","reportOrNull","put","IceReportFactory","PeerConnectionReport","ReceiverReportFactory","SenderReportFactory","lastReport","receivers","mozRTCPeerConnection","getSenderOrReceiverReports","senderReports","receiverReports","pcReport","senderReportFactoriesByMediaType","getSenderReportFactoriesByMediaType","senderReportFactoryIdsToDeleteByMediaType","getSenderReportFactoryIdsByMediaType","updateSenderReports","deleteSenderOrReceiverReportFactories","receiverReportFactoriesByMediaType","getReceiverReportFactoriesByMediaType","receiverReportFactoryIdsToDeleteByMediaType","getReceiverReportFactoryIdsByMediaType","updateReceiverReports","updateIceReport","updateChrome","audioSenderReportFactories","videoSenderReportFactories","audioReceiverReportFactories","videoReceiverReportFactories","sendersOrReceivers","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","pairs","getOrCreateSenderOrReceiverReportFactory","sendersOrReceiversByMediaType","mediaType","trackIdentifier","senderOrReceiverFactory","getOrCreateSenderReportFactory","getOrCreateReceiverReportFactory","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","senderReportFactoryIdsToDelete","senderReportFactory","remoteInboundStats","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","receiverReportFactoryIdsToDelete","receiverReportFactory","senderOrReceiverReportFactoriesByMediaType","senderOrReceiverReportFactoryIdsByMediaType","_loop","senderOrReceiverReportFactories","senderOrReceiverReportFactoryId","selectedCandidatePair","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","selectedCandidatePairId","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","_stats","selected","IceReport","availableSend","AsyncVar","_level","_remoteLevels","_mediaSignalingTransport","_networkQualityInputs","_networkQualityReportLevels","reportLevel","remoteReportLevel","_handleNetworkQualityMessage","_sendNetworkQualityInputs","remotes","take","networkQualityInputs","networkQualityReportLevels","createNetworkQualityInputsMessage","_hasValue","_RecordingSignaling","_revision","RemoteParticipantSignaling","RemoteTrackPublicationV2","_RemoteParticipantSig","getTrackReceiver","_ret","_RemoteTrackPublicationV2","tracksToKeep","_getOrCreateTrack","_ParticipantSignaling","NetworkQualityAudioStats","NetworkQualityVideoStats","_NetworkQualityMediaS","mediaLevels","_NetworkQualitySendOr","sendOrRecvStats","_ref$actual","actual","_ref$available","available","_ref$level","_ref$jitter","_ref$rtt","RemoteTrackPublicationSignaling","_TrackSignaling","setSid","publishOrSubscribe","_setTrackSwitchOffUpdates","tracksSwitchedOff","tracksSwitchedOn","packageInfo","TwilioConnection","SDK_NAME","SDK_VERSION","syncing","TwilioConnectionTransport","eventPublisherOptions","gateway","EventPublisher","_accessToken","_automaticSubscription","_bandwidthProfile","_dominantSpeaker","_eventPublisher","_iceServerSourceStatus","_name","_networkQuality","_sessionTimer","_sessionTimeoutMS","_reconnectBackoff","_session","_trackPriority","_trackSwitchOff","_twilioConnection","_updatesReceived","_updatesToSend","_userAgent","_sendConnectOrSyncOrDisconnectMessage","reconnectTimer","_getReconnectTimer","startConnect","twilioConnection","handleMessage","createOrResetTwilioConnection","_setSession","session","_clearReconnectTimer","reduced","reducePeerConnections","reduceUpdates","setupEventListeners","getStates","publisher","user_agent","sendMessage","groupName","peerConnectionsById","toplevel","sdkName","sdkVersion","createGateway","maxReconnectAttempts","reconnectIntervalMs","_connectTimestamp","_eventQueue","_readyToConnect","_reconnectAttemptsLeft","_ws","_WebSocket","roomSid","participantSid","maybeReconnect","connectInterval","timeToWait","CLOSING","CLOSED","handleConnectResponse","connectRequest","_connected","serverUrl","maxConsecutiveMissedHeartbeats","requestedHeartbeatTimeout","welcomeTimeout","_consecutiveHeartbeatsMissed","_heartbeatTimeout","_sendHeartbeatTimeout","_welcomeTimeout","_connect","_handleBad","_handleHeartbeat","_handleMessage","_handleWelcome","_sendHello","_handleWelcomeTimeout","negotiatedTimeout","heartbeatTimeout","_handleHeartbeatTimeout","_send","_sendHeartbeat","OPEN","_sendOrEnqueue","LocalParticipantSignaling","LocalTrackPublicationV2","_LocalParticipantSign","_bandwidthProfileRevision","_removeListeners","_LocalTrackPublicationV2","_signalingRegion","didUpdate","publicationState","localTrackPublicationV2","_removeListener","_publicationsToTrackSenders","_trackSendersToPublications","_createLocalTrackPublicationSignaling","LocalTrackPublicationSignaling","_updatedPriority","setError","opening","closing","_open","isNonChromiumEdge","webkitRTCPeerConnection","apiType","toggleSubmitButton","hasAcceptAutomaticPaymentCheckboxTarget","acceptTermsCheckboxTarget","acceptAutomaticPaymentCheckboxTarget","hasProcessingLoaderTarget","refreshBalance","loadBalance","hasProcessingLoaderBeforeRefresh","formController","balancePath","topUpBalanceFormController","paymentMethodPath","paymentMethodFormController","topUpBalanceFormTarget","paymentMethodFormTarget","popover","popoverElement","setExcerptHeight","isExpanded","hideExcerpt","showContent","excerptTarget","contentTarget","expandButtonTarget","contentHeight","offsetHeight","excerptTextHeight","excerptTextTarget","showExpandButton","showExcerpt","hideContent","hideExpandButton","isDirty","updateNoticeContainerTarget","noticeTarget","notSavedText","hasSubmitForReviewButtonTarget","submitForReviewButtonTarget","scheduleFormUpdate","resetVersions","updatedText","cantSaveText","formResponseHandler","eventStatus","formErrorTimestamp","formSuccessTimestamp","formChangeHandler","checkForChanges","editorTargets","editorTarget","inputTargets","formUpdateTimeout","fire","formData","prepareFormData","hasVersionFieldTarget","versionFieldTarget","formattedFormData","FormData","hasServiceRowTarget","keyword","serviceRowTargets","searchIndex","currentBalance","amount","parseCurrentBalance","currencySymbol","parseCurrentBalanceCurrencySymbol","amountPresetField","amountPresetFieldTargets","hasAmountFieldTarget","amountFieldTarget","calculateBalance","currentAmount","hasBalanceLabelTarget","balanceLabel","balanceLabelTarget","calculatedBalance","numberToCurrency","rawBalance","balance","formattedAmount","rawAmount","insertAdjacentHTML","refreshPath","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","setProgressBarDelay","_defineProperties","AttachmentUpload","directUploadUrl","directUploadDidComplete","sgid","attachable_sgid","createBlobUrl","signedId","blobUrlTemplate"],"mappings":"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","file":"js/application-1b6bf133270978baa552.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://next.worklifeapp.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 455);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.moment = factory();\n})(this, function () {\n 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n } // This is done to register the method called with moment()\n // without creating circular dependencies.\n\n\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\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 input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\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 typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [],\n i;\n\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\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 invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\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\n return m._pf;\n }\n\n var some;\n\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function some(fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var 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 if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) && flags.overflow < 0 && !flags.empty && !flags.invalidMonth && !flags.invalidWeekday && !flags.weekdayMismatch && !flags.nullInput && !flags.invalidFormat && !flags.userInvalidated && (!flags.meridiem || flags.meridiem && parsedParts);\n\n if (m._strict) {\n isNowValid = isNowValid && flags.charsLeftOver === 0 && flags.unusedTokens.length === 0 && flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n } // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n\n\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false; // Moment prototype object\n\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n\n if (!this.isValid()) {\n this._d = new Date(NaN);\n } // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n\n\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return obj instanceof Moment || obj != null && obj._isAMomentObject != null;\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 } // compare two arrays, return the number of differences\n\n\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\n for (i = 0; i < len; i++) {\n if (dontConvert && array1[i] !== array2[i] || !dontConvert && toInt(array1[i]) !== toInt(array2[i])) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n\n if (firstTime) {\n var args = [];\n var arg;\n\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n\n if (_typeof(arguments[i]) === 'object') {\n arg += '\\n[' + i + '] ';\n\n for (var key in arguments[0]) {\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\n args.push(arg);\n }\n\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + new Error().stack);\n firstTime = false;\n }\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\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 input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set(config) {\n var prop, i;\n\n for (i in config) {\n prop = config[i];\n\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n\n this._config = config; // 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\n this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + '|' + /\\d{1,2}/.source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n\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\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) && !hasOwnProp(childConfig, prop) && isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\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 keys(obj) {\n var i,\n res = [];\n\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\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 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.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\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 var 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 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) ? output(number, withoutSuffix, string, isFuture) : 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\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : 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\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n\n for (var u in unitsObj) {\n units.push({\n unit: u,\n priority: priorities[u]\n });\n }\n\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\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 (sign ? forceSign ? '+' : '' : '-') + Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n var formatFunctions = {};\n var formatTokenFunctions = {}; // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n\n if (typeof callback === 'string') {\n func = function func() {\n return this[callback]();\n };\n }\n\n if (token) {\n formatTokenFunctions[token] = func;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\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\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n\n return output;\n };\n } // format date using native date object\n\n\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] = formatFunctions[format] || makeFormatFunction(format);\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\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n\n var match2 = /\\d\\d/; // 00 - 99\n\n var match3 = /\\d{3}/; // 000 - 999\n\n var match4 = /\\d{4}/; // 0000 - 9999\n\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n\n var match1to2 = /\\d\\d?/; // 0 - 99\n\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n\n var match1to3 = /\\d{1,3}/; // 0 - 999\n\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var 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\n var matchWord = /[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 var regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : 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 } // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n\n\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback;\n\n if (typeof token === 'string') {\n token = [token];\n }\n\n if (isNumber(callback)) {\n func = function func(input, array) {\n array[callback] = toInt(input);\n };\n }\n\n for (i = 0; i < token.length; 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 var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8; // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); // ALIASES\n\n addUnitAlias('year', 'y'); // PRIORITIES\n\n addUnitPriority('year', 1); // 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 addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = 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 }); // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n } // HOOKS\n\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n }; // MOMENTS\n\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 return mom.isValid() ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n } // MOMENTS\n\n\n function stringGet(units) {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units]();\n }\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\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n\n if (isFunction(this[units])) {\n return this[units](value);\n }\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 indexOf(o) {\n // I know\n var i;\n\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? isLeapYear(year) ? 29 : 28 : 31 - modMonth % 7 % 2;\n } // FORMATTING\n\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n }); // ALIASES\n\n addUnitAlias('month', 'M'); // PRIORITY\n\n addUnitPriority('month', 8); // PARSING\n\n addRegexToken('M', match1to2);\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 addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict); // if we didn't find a month name, mark the date as invalid.\n\n\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n }); // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months) ? this._months : this._months['standalone'];\n }\n\n return isArray(this._months) ? this._months[m.month()] : this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort : this._monthsShort['standalone'];\n }\n\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] : this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').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\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\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 } // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\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); // TODO: Another silent failure?\n\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n\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 var defaultMonthsShortRegex = matchWord;\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\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\n return this._monthsShortStrictRegex && isStrict ? this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\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\n return this._monthsStrictRegex && isStrict ? this._monthsStrictRegex : 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\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n } // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\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; // the date constructor remaps years 0-99 to 1900-1999\n\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\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; // the Date.UTC function remaps years 0-99 to 1900-1999\n\n if (y < 100 && y >= 0) {\n var args = Array.prototype.slice.call(arguments); // preserve leap years using a full 400 year cycle, then reset\n\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n\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 } // start-of-first-week - start-of-year\n\n\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 return -fwdlw + fwd - 1;\n } // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n\n\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 } // FORMATTING\n\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W'); // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5); // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }); // HELPERS\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,\n // 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 function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n } // MOMENTS\n\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 } // FORMATTING\n\n\n addFormatToken('d', 0, 'do', 'day');\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday'); // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E'); // PRIORITY\n\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11); // 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 addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict); // if we didn't get a weekday name, mark the date as invalid\n\n\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\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\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\n return isNaN(input) ? null : input;\n } // LOCALES\n\n\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays) ? this._weekdays : this._weekdays[m && m !== true && this._weekdays.isFormat.test(format) ? 'format' : 'standalone'];\n return m === true ? shiftWeekdays(weekdays, this._week.dow) : m ? weekdays[m.day()] : weekdays;\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n\n function localeWeekdaysShort(m) {\n return m === true ? shiftWeekdays(this._weekdaysShort, this._week.dow) : m ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n\n function localeWeekdaysMin(m) {\n return m === true ? shiftWeekdays(this._weekdaysMin, this._week.dow) : m ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n\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(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').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\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\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\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\n\n ii = indexOf.call(this._weekdaysParse, llc);\n\n if (ii !== -1) {\n return ii;\n }\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 mom = createUTC([2000, 1]).day(i);\n\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n } // test the regex\n\n\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n } // MOMENTS\n\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n\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\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 } // 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\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 var defaultWeekdaysRegex = matchWord;\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\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\n return this._weekdaysStrictRegex && isStrict ? this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\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\n return this._weekdaysShortStrictRegex && isStrict ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\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\n return this._weekdaysMinStrictRegex && isStrict ? this._weekdaysMinStrictRegex : 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\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 = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = 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 } // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n\n\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n } // FORMATTING\n\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 addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) + zeroFill(this.seconds(), 2);\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false); // ALIASES\n\n addUnitAlias('hour', 'h'); // PRIORITY\n\n addUnitPriority('hour', 13); // 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);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\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 var 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 var 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 }); // 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\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n } // MOMENTS\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\n\n var getSetHour = makeGetSet('Hours', true);\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n week: defaultLocaleWeek,\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n meridiemParse: defaultLocaleMeridiemParse\n }; // internal storage for locale config files\n\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\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\n\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\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n\n if (locale) {\n return locale;\n }\n\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n\n j--;\n }\n\n i++;\n }\n\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null; // TODO: Find a better way to register and load all the locales in Node\n\n if (!locales[name] && typeof module !== 'undefined' && module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n\n return locales[name];\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\n\n function getSetGlobalLocale(key, values) {\n var data;\n\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('Locale ' + key + ' not found. Did you forget to load it?');\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\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride', 'use moment.updateLocale(localeName, config) to change ' + 'an existing locale. moment.defineLocale(localeName, ' + 'config) should only be used for creating a new locale ' + 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\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\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\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 } // 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\n\n getSetGlobalLocale(name);\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; // MERGE\n\n tmpLocale = loadLocale(name);\n\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale; // backwards compat for now: also set the locale\n\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 } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n } // returns locale data\n\n\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\n if (locale) {\n return locale;\n }\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 var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : a[HOUR] < 0 || a[HOUR] > 24 || a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0) ? HOUR : a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n } // Pick the first defined of two or three arguments.\n\n\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n\n if (b != null) {\n return b;\n }\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\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\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\n\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); //compute day of the year from weeks and weekdays\n\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n } //if the day of the year is set, figure out what it is\n\n\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\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 } // 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\n\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n } // Zero out whatever was not defaulted, including time\n\n\n for (; i < 7; i++) {\n config._a[i] = input[i] = config._a[i] == null ? i === 2 ? 1 : 0 : config._a[i];\n } // Check for 24:00:00.000\n\n\n if (config._a[HOUR] === 24 && config._a[MINUTE] === 0 && config._a[SECOND] === 0 && config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay(); // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n\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 } // check for mismatching day of week\n\n\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n w = config._w;\n\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4; // 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\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n\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 var curWeek = weekOfYear(createLocal(), dow, doy);\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year); // Default to current week.\n\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\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\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\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 } // 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\n\n var extendedIsoRegex = /^\\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 var basicIsoRegex = /^\\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 var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n var isoDates = [['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/], ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/], ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/], ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false], ['YYYY-DDD', /\\d{4}-\\d{3}/], ['YYYY-MM', /\\d{4}-\\d\\d/, false], ['YYYYYYMMDD', /[+-]\\d{10}/], ['YYYYMMDD', /\\d{8}/], // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/], ['GGGG[W]WW', /\\d{4}W\\d{2}/, false], ['YYYYDDD', /\\d{7}/]]; // iso time formats and regexes\n\n var isoTimes = [['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/], ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/], ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/], ['HH:mm', /\\d\\d:\\d\\d/], ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/], ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/], ['HHmmss', /\\d\\d\\d\\d\\d\\d/], ['HHmm', /\\d\\d\\d\\d/], ['HH', /\\d\\d/]];\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i; // date from iso format\n\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\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; 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\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; 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\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\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\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n } // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n\n\n var rfc2822 = /^(?:(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\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [untruncateYear(yearStr), defaultLocaleMonthsShort.indexOf(monthStr), parseInt(dayStr, 10), parseInt(hourStr, 10), parseInt(minuteStr, 10)];\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\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\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.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n\n return true;\n }\n\n var 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 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 var m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n } // date and time from ref 2822 format\n\n\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], 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 config._d = createUTCDate.apply(null, config._a);\n\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n } // date from iso format or fallback\n\n\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n } // Final attempt, use Input Fallback\n\n\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate('value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' + 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' + 'discouraged and will be removed in an upcoming major release. Please refer to ' + 'http://momentjs.com/guides/#/warnings/js-date/ for more info.', function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }); // constant that refers to the ISO standard\n\n hooks.ISO_8601 = function () {}; // constant that refers to the RFC 2822 form\n\n\n hooks.RFC_2822 = function () {}; // date from string and format string\n\n\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\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0]; // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n } // don't parse if it's not a known token\n\n\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n } // add remaining unparsed input length to the string\n\n\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n } // clear _12h flag if hour is <= 12\n\n\n if (config._a[HOUR] <= 12 && getParsingFlags(config).bigHour === true && config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem; // handle meridiem\n\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\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\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\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n } // date from string and array of format strings\n\n\n function configFromStringAndArray(config) {\n var tempConfig, bestMoment, scoreToBeat, i, currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n } // if there is any input that was not parsed add a penalty for that format\n\n\n currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens\n\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\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 config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n\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 config._locale = config._locale || getLocale(config._l);\n\n if (input === null || format === undefined && input === '') {\n return createInvalid({\n nullInput: true\n });\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\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 (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (isObject(input) && isObjectEmpty(input) || isArray(input) && input.length === 0) {\n input = undefined;\n } // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n\n\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 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('moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n });\n var prototypeMax = deprecate('moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/', function () {\n var other = createLocal.apply(null, arguments);\n\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\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\n function pickBy(fn, moments) {\n var res, i;\n\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n\n if (!moments.length) {\n return createLocal();\n }\n\n res = moments[0];\n\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n\n return res;\n } // TODO: Use [].sort instead?\n\n\n function min() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n return pickBy('isAfter', args);\n }\n\n var now = function now() {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\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 this._isValid = isDurationValid(normalizedInput); // representation for dateAddRemove\n\n this._milliseconds = +milliseconds + 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\n this._days = +days + weeks * 7; // 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\n this._months = +months + quarters * 3 + years * 12;\n this._data = {};\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 } // FORMATTING\n\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~offset % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', ''); // 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 }); // HELPERS\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n } // Return a moment from input, that is local/utc/zone equivalent to model.\n\n\n function cloneWithOffset(input, model) {\n var res, diff;\n\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf(); // Use low-level api, because this fn is low-level api.\n\n res._d.setTime(res._d.valueOf() + diff);\n\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() / 15) * 15;\n } // HOOKS\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\n\n hooks.updateOffset = function () {}; // MOMENTS\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\n\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n\n this._offset = input;\n this._isUTC = true;\n\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\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 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\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\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n\n input = input ? createLocal(input).utcOffset() : 0;\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset();\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = 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 } // ASP.NET json date format regex\n\n\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/; // 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\n var isoRegex = /^(-|\\+)?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)) {\n duration = {};\n\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 };\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 (_typeof(duration) === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\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 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(',', '.')); // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n res.months = other.month() - base.month() + (other.year() - base.year()) * 12;\n\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 return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n\n if (!(base.isValid() && other.isValid())) {\n return {\n milliseconds: 0,\n months: 0\n };\n }\n\n other = cloneWithOffset(other, base);\n\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 } // TODO: remove 'name' arg after deprecation is removed\n\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp; //invert the arguments, but complain about it\n\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' + 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val;\n val = period;\n period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\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\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' : diff < -1 ? 'lastWeek' : diff < 0 ? 'lastDay' : diff < 1 ? 'sameDay' : diff < 2 ? 'nextDay' : diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1(time, formats) {\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 var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\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\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\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\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\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\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(localFrom, units) : !this.isBefore(localFrom, units)) && (inclusivity[1] === ')' ? this.isBefore(localTo, units) : !this.isAfter(localTo, units));\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n\n units = normalizeUnits(units) || 'millisecond';\n\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\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 units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n\n case 'month':\n output = monthDiff(this, that);\n break;\n\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n\n case 'second':\n output = (this - that) / 1e3;\n break;\n // 1000\n\n case 'minute':\n output = (this - that) / 6e4;\n break;\n // 1000 * 60\n\n case 'hour':\n output = (this - that) / 36e5;\n break;\n // 1000 * 60 * 60\n\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break;\n // 1000 * 60 * 60 * 24, negate dst\n\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break;\n // 1000 * 60 * 60 * 24 * 7, negate dst\n\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\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'); // linear across the month\n\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); // linear across the month\n\n adjust = (b - anchor) / (anchor2 - anchor);\n } //check for negative zero, return zero if negative zero\n\n\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\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : '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).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\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\n\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n\n var func = 'moment';\n var zone = '';\n\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n\n var prefix = '[' + func + '(\"]';\n var year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n to: this,\n from: time\n }).locale(this.locale()).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 (this.isValid() && (isMoment(time) && time.isValid() || createLocal(time).isValid())) {\n return createDuration({\n from: this,\n to: time\n }).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\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\n\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n\n return this;\n }\n }\n\n var lang = deprecate('moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n });\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000;\n var MS_PER_MINUTE = 60 * MS_PER_SECOND;\n var MS_PER_HOUR = 60 * MS_PER_MINUTE;\n var MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR; // actual modulo - handles negative numbers (for dates before 1970):\n\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;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3, 1);\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday());\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1));\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR);\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n\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\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time;\n units = normalizeUnits(units);\n\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n var startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n\n case 'quarter':\n time = startOfDate(this.year(), this.month() - this.month() % 3 + 3, 1) - 1;\n break;\n\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n\n case 'week':\n time = startOfDate(this.year(), this.month(), this.date() - this.weekday() + 7) - 1;\n break;\n\n case 'isoWeek':\n time = startOfDate(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1;\n break;\n\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n\n case 'hour':\n time = this._d.valueOf();\n time += MS_PER_HOUR - mod$1(time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE), MS_PER_HOUR) - 1;\n break;\n\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n\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\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 [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\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 } // FORMATTING\n\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\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'); // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG'); // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1); // 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 addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n }); // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(this, input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n\n if (week > weeksTarget) {\n week = weeksTarget;\n }\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 this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n } // FORMATTING\n\n\n addFormatToken('Q', 0, 'Qo', 'quarter'); // ALIASES\n\n addUnitAlias('quarter', 'Q'); // PRIORITY\n\n addUnitPriority('quarter', 7); // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n }); // MOMENTS\n\n function getSetQuarter(input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n } // FORMATTING\n\n\n addFormatToken('D', ['DD', 2], 'Do', 'date'); // ALIASES\n\n addUnitAlias('date', 'D'); // PRIORITY\n\n addUnitPriority('date', 9); // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ? locale._dayOfMonthOrdinalParse || locale._ordinalParse : locale._dayOfMonthOrdinalParseLenient;\n });\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n }); // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true); // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD'); // PRIORITY\n\n addUnitPriority('dayOfYear', 4); // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n }); // HELPERS\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n } // FORMATTING\n\n\n addFormatToken('m', ['mm', 2], 0, 'minute'); // ALIASES\n\n addUnitAlias('minute', 'm'); // PRIORITY\n\n addUnitPriority('minute', 14); // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE); // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false); // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second'); // ALIASES\n\n addUnitAlias('second', 's'); // PRIORITY\n\n addUnitPriority('second', 15); // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND); // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false); // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\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 }); // ALIASES\n\n addUnitAlias('millisecond', 'ms'); // PRIORITY\n\n addUnitPriority('millisecond', 16); // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n var token;\n\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 } // MOMENTS\n\n\n var getSetMillisecond = makeGetSet('Milliseconds', false); // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName'); // 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 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 proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\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.isoWeeksInYear = getISOWeeksInYear;\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('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\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 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.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 proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale();\n var 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 var out = [];\n\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n\n return out;\n } // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n\n\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\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\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 dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function ordinal(number) {\n var b = number % 10,\n output = toInt(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n }); // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\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 return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n return duration._bubble();\n } // supports only 2.0-style add(1, 's') or add(duration)\n\n\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n } // supports only 2.0-style subtract(1, 's') or subtract(duration)\n\n\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 var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays; // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n\n if (!(milliseconds >= 0 && days >= 0 && months >= 0 || milliseconds <= 0 && days <= 0 && months <= 0)) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n } // The following code bubbles up values, see the tests for\n // examples of what that means.\n\n\n data.milliseconds = milliseconds % 1000;\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n days += absFloor(hours / 24); // convert days to months\n\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays)); // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12;\n data.days = days;\n data.months = months;\n data.years = years;\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\n var days;\n var months;\n var milliseconds = this._milliseconds;\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\n switch (units) {\n case 'month':\n return months;\n\n case 'quarter':\n return months / 3;\n\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\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n\n case 'day':\n return days + milliseconds / 864e5;\n\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n } // TODO: Use this.as('ms')?\n\n\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n\n return this._milliseconds + this._days * 864e5 + this._months % 12 * 2592e6 + toInt(this._months / 12) * 31536e6;\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asQuarters = makeAs('Q');\n var asYears = makeAs('y');\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 var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44,\n // a few seconds to seconds\n s: 45,\n // seconds to minute\n m: 45,\n // minutes to hour\n h: 22,\n // hours to day\n d: 26,\n // days to month\n M: 11 // months to year\n\n }; // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n\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, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n var a = seconds <= thresholds.ss && ['s', seconds] || seconds < thresholds.s && ['ss', seconds] || minutes <= 1 && ['m'] || minutes < thresholds.m && ['mm', minutes] || hours <= 1 && ['h'] || hours < thresholds.h && ['hh', hours] || days <= 1 && ['d'] || days < thresholds.d && ['dd', days] || months <= 1 && ['M'] || months < thresholds.M && ['MM', months] || years <= 1 && ['y'] || ['yy', years];\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n } // This function allows you to set the rounding function for relative time strings\n\n\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n\n return false;\n } // This function allows you to set a threshold for relative time strings\n\n\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n\n if (limit === undefined) {\n return thresholds[threshold];\n }\n\n thresholds[threshold] = limit;\n\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n }\n\n function humanize(withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, 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 var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years; // 3600 seconds -> 60 minutes -> 1 hour\n\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60; // 12 months -> 1 year\n\n years = absFloor(months / 12);\n months %= 12; // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\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 var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n return totalSign + 'P' + (Y ? ymSign + Y + 'Y' : '') + (M ? ymSign + M + 'M' : '') + (D ? daysSign + D + 'D' : '') + (h || m || s ? 'T' : '') + (h ? hmsSign + h + 'H' : '') + (m ? hmsSign + m + 'M' : '') + (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\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 proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang; // Side effect imports\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf'); // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n }); // Side effect imports\n\n hooks.version = '2.24.0';\n setHookCallback(createLocal);\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; // currently HTML5 input type only supports 24-hour formats\n\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm',\n // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss',\n // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS',\n // \n DATE: 'YYYY-MM-DD',\n // \n TIME: 'HH:mm',\n // \n TIME_SECONDS: 'HH:mm:ss',\n // \n TIME_MS: 'HH:mm:ss.SSS',\n // \n WEEK: 'GGGG-[W]WW',\n // \n MONTH: 'YYYY-MM' // \n\n };\n return hooks;\n});","var EventListener =\n/** @class */\nfunction () {\n function EventListener(eventTarget, eventName) {\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.unorderedBindings = new Set();\n }\n\n EventListener.prototype.connect = function () {\n this.eventTarget.addEventListener(this.eventName, this, false);\n };\n\n EventListener.prototype.disconnect = function () {\n this.eventTarget.removeEventListener(this.eventName, this, false);\n }; // Binding observer delegate\n\n /** @hidden */\n\n\n EventListener.prototype.bindingConnected = function (binding) {\n this.unorderedBindings.add(binding);\n };\n /** @hidden */\n\n\n EventListener.prototype.bindingDisconnected = function (binding) {\n this.unorderedBindings[\"delete\"](binding);\n };\n\n EventListener.prototype.handleEvent = function (event) {\n var extendedEvent = extendEvent(event);\n\n for (var _i = 0, _a = this.bindings; _i < _a.length; _i++) {\n var binding = _a[_i];\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n };\n\n Object.defineProperty(EventListener.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n },\n enumerable: true,\n configurable: true\n });\n return EventListener;\n}();\n\nexport { EventListener };\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var stopImmediatePropagation_1 = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n stopImmediatePropagation_1.call(this);\n }\n });\n }\n}","import { EventListener } from \"./event_listener\";\n\nvar Dispatcher =\n/** @class */\nfunction () {\n function Dispatcher(application) {\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n Dispatcher.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n };\n\n Dispatcher.prototype.stop = function () {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n };\n\n Object.defineProperty(Dispatcher.prototype, \"eventListeners\", {\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n },\n enumerable: true,\n configurable: true\n }); // Binding observer delegate\n\n /** @hidden */\n\n Dispatcher.prototype.bindingConnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n };\n /** @hidden */\n\n\n Dispatcher.prototype.bindingDisconnected = function (binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }; // Error handling\n\n\n Dispatcher.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n Dispatcher.prototype.fetchEventListenerForBinding = function (binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName;\n return this.fetchEventListener(eventTarget, eventName);\n };\n\n Dispatcher.prototype.fetchEventListener = function (eventTarget, eventName) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var eventListener = eventListenerMap.get(eventName);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName);\n eventListenerMap.set(eventName, eventListener);\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.createEventListener = function (eventTarget, eventName) {\n var eventListener = new EventListener(eventTarget, eventName);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n };\n\n Dispatcher.prototype.fetchEventListenerMapForEventTarget = function (eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n };\n\n return Dispatcher;\n}();\n\nexport { Dispatcher };","// capture nos.: 12 23 4 43 1 5 56 7 76\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#(.+))?$/;\nexport function parseDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nexport function stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}","import { parseDescriptorString, stringifyEventTarget } from \"./action_descriptor\";\n\nvar Action =\n/** @class */\nfunction () {\n function Action(element, index, descriptor) {\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n Action.forToken = function (token) {\n return new this(token.element, token.index, parseDescriptorString(token.content));\n };\n\n Action.prototype.toString = function () {\n var eventNameSuffix = this.eventTargetName ? \"@\" + this.eventTargetName : \"\";\n return \"\" + this.eventName + eventNameSuffix + \"->\" + this.identifier + \"#\" + this.methodName;\n };\n\n Object.defineProperty(Action.prototype, \"eventTargetName\", {\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n },\n enumerable: true,\n configurable: true\n });\n return Action;\n}();\n\nexport { Action };\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"change\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"change\";\n }\n};\nexport function getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}","var Binding =\n/** @class */\nfunction () {\n function Binding(context, action) {\n this.context = context;\n this.action = action;\n }\n\n Object.defineProperty(Binding.prototype, \"index\", {\n get: function get() {\n return this.action.index;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"eventTarget\", {\n get: function get() {\n return this.action.eventTarget;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.handleEvent = function (event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n };\n\n Object.defineProperty(Binding.prototype, \"eventName\", {\n get: function get() {\n return this.action.eventName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"method\", {\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\" + this.action + \"\\\" references undefined method \\\"\" + this.methodName + \"\\\"\");\n },\n enumerable: true,\n configurable: true\n });\n\n Binding.prototype.invokeWithEvent = function (event) {\n try {\n this.method.call(this.controller, event);\n } catch (error) {\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element,\n index = _a.index;\n\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\" + this.action + \"\\\"\", detail);\n }\n };\n\n Binding.prototype.willBeInvokedByEvent = function (event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return true;\n }\n };\n\n Object.defineProperty(Binding.prototype, \"controller\", {\n get: function get() {\n return this.context.controller;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"methodName\", {\n get: function get() {\n return this.action.methodName;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Binding.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n return Binding;\n}();\n\nexport { Binding };","var ElementObserver =\n/** @class */\nfunction () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n ElementObserver.prototype.start = function () {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n childList: true,\n subtree: true\n });\n this.refresh();\n }\n };\n\n ElementObserver.prototype.stop = function () {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n };\n\n ElementObserver.prototype.refresh = function () {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _a = Array.from(this.elements); _i < _a.length; _i++) {\n var element = _a[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _b = 0, _c = Array.from(matches); _b < _c.length; _b++) {\n var element = _c[_b];\n this.addElement(element);\n }\n }\n }; // Mutation record processing\n\n\n ElementObserver.prototype.processMutations = function (mutations) {\n if (this.started) {\n for (var _i = 0, mutations_1 = mutations; _i < mutations_1.length; _i++) {\n var mutation = mutations_1[_i];\n this.processMutation(mutation);\n }\n }\n };\n\n ElementObserver.prototype.processMutation = function (mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n };\n\n ElementObserver.prototype.processAttributeChange = function (node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n };\n\n ElementObserver.prototype.processRemovedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n };\n\n ElementObserver.prototype.processAddedNodes = function (nodes) {\n for (var _i = 0, _a = Array.from(nodes); _i < _a.length; _i++) {\n var node = _a[_i];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }; // Element matching\n\n\n ElementObserver.prototype.matchElement = function (element) {\n return this.delegate.matchElement(element);\n };\n\n ElementObserver.prototype.matchElementsInTree = function (tree) {\n if (tree === void 0) {\n tree = this.element;\n }\n\n return this.delegate.matchElementsInTree(tree);\n };\n\n ElementObserver.prototype.processTree = function (tree, processor) {\n for (var _i = 0, _a = this.matchElementsInTree(tree); _i < _a.length; _i++) {\n var element = _a[_i];\n processor.call(this, element);\n }\n };\n\n ElementObserver.prototype.elementFromNode = function (node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n };\n\n ElementObserver.prototype.elementIsActive = function (element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }; // Element tracking\n\n\n ElementObserver.prototype.addElement = function (element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n };\n\n ElementObserver.prototype.removeElement = function (element) {\n if (this.elements.has(element)) {\n this.elements[\"delete\"](element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n };\n\n return ElementObserver;\n}();\n\nexport { ElementObserver };","import { ElementObserver } from \"./element_observer\";\n\nvar AttributeObserver =\n/** @class */\nfunction () {\n function AttributeObserver(element, attributeName, delegate) {\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n Object.defineProperty(AttributeObserver.prototype, \"element\", {\n get: function get() {\n return this.elementObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AttributeObserver.prototype, \"selector\", {\n get: function get() {\n return \"[\" + this.attributeName + \"]\";\n },\n enumerable: true,\n configurable: true\n });\n\n AttributeObserver.prototype.start = function () {\n this.elementObserver.start();\n };\n\n AttributeObserver.prototype.stop = function () {\n this.elementObserver.stop();\n };\n\n AttributeObserver.prototype.refresh = function () {\n this.elementObserver.refresh();\n };\n\n Object.defineProperty(AttributeObserver.prototype, \"started\", {\n get: function get() {\n return this.elementObserver.started;\n },\n enumerable: true,\n configurable: true\n }); // Element observer delegate\n\n AttributeObserver.prototype.matchElement = function (element) {\n return element.hasAttribute(this.attributeName);\n };\n\n AttributeObserver.prototype.matchElementsInTree = function (tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n };\n\n AttributeObserver.prototype.elementMatched = function (element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementUnmatched = function (element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n };\n\n AttributeObserver.prototype.elementAttributeChanged = function (element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n };\n\n return AttributeObserver;\n}();\n\nexport { AttributeObserver };","export function add(map, key, value) {\n fetch(map, key).add(value);\n}\nexport function del(map, key, value) {\n fetch(map, key)[\"delete\"](value);\n prune(map, key);\n}\nexport function fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\nexport function prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map[\"delete\"](key);\n }\n}","import { add, del } from \"./set_operations\";\n\nvar Multimap =\n/** @class */\nfunction () {\n function Multimap() {\n this.valuesByKey = new Map();\n }\n\n Object.defineProperty(Multimap.prototype, \"values\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Multimap.prototype, \"size\", {\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n },\n enumerable: true,\n configurable: true\n });\n\n Multimap.prototype.add = function (key, value) {\n add(this.valuesByKey, key, value);\n };\n\n Multimap.prototype[\"delete\"] = function (key, value) {\n del(this.valuesByKey, key, value);\n };\n\n Multimap.prototype.has = function (key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n };\n\n Multimap.prototype.hasKey = function (key) {\n return this.valuesByKey.has(key);\n };\n\n Multimap.prototype.hasValue = function (value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n };\n\n Multimap.prototype.getValuesForKey = function (key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n };\n\n Multimap.prototype.getKeysForValue = function (value) {\n return Array.from(this.valuesByKey).filter(function (_a) {\n var key = _a[0],\n values = _a[1];\n return values.has(value);\n }).map(function (_a) {\n var key = _a[0],\n values = _a[1];\n return key;\n });\n };\n\n return Multimap;\n}();\n\nexport { Multimap };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n\nimport { Multimap } from \"./multimap\";\nimport { add, del } from \"./set_operations\";\n\nvar IndexedMultimap =\n/** @class */\nfunction (_super) {\n __extends(IndexedMultimap, _super);\n\n function IndexedMultimap() {\n var _this = _super.call(this) || this;\n\n _this.keysByValue = new Map();\n return _this;\n }\n\n Object.defineProperty(IndexedMultimap.prototype, \"values\", {\n get: function get() {\n return Array.from(this.keysByValue.keys());\n },\n enumerable: true,\n configurable: true\n });\n\n IndexedMultimap.prototype.add = function (key, value) {\n _super.prototype.add.call(this, key, value);\n\n add(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype[\"delete\"] = function (key, value) {\n _super.prototype[\"delete\"].call(this, key, value);\n\n del(this.keysByValue, value, key);\n };\n\n IndexedMultimap.prototype.hasValue = function (value) {\n return this.keysByValue.has(value);\n };\n\n IndexedMultimap.prototype.getKeysForValue = function (value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n };\n\n return IndexedMultimap;\n}(Multimap);\n\nexport { IndexedMultimap };","import { AttributeObserver } from \"./attribute_observer\";\nimport { Multimap } from \"@stimulus/multimap\";\n\nvar TokenListObserver =\n/** @class */\nfunction () {\n function TokenListObserver(element, attributeName, delegate) {\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n Object.defineProperty(TokenListObserver.prototype, \"started\", {\n get: function get() {\n return this.attributeObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n TokenListObserver.prototype.start = function () {\n this.attributeObserver.start();\n };\n\n TokenListObserver.prototype.stop = function () {\n this.attributeObserver.stop();\n };\n\n TokenListObserver.prototype.refresh = function () {\n this.attributeObserver.refresh();\n };\n\n Object.defineProperty(TokenListObserver.prototype, \"element\", {\n get: function get() {\n return this.attributeObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TokenListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.attributeObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n }); // Attribute observer delegate\n\n TokenListObserver.prototype.elementMatchedAttribute = function (element) {\n this.tokensMatched(this.readTokensForElement(element));\n };\n\n TokenListObserver.prototype.elementAttributeValueChanged = function (element) {\n var _a = this.refreshTokensForElement(element),\n unmatchedTokens = _a[0],\n matchedTokens = _a[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n };\n\n TokenListObserver.prototype.elementUnmatchedAttribute = function (element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n };\n\n TokenListObserver.prototype.tokensMatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenMatched(token);\n });\n };\n\n TokenListObserver.prototype.tokensUnmatched = function (tokens) {\n var _this = this;\n\n tokens.forEach(function (token) {\n return _this.tokenUnmatched(token);\n });\n };\n\n TokenListObserver.prototype.tokenMatched = function (token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n };\n\n TokenListObserver.prototype.tokenUnmatched = function (token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement[\"delete\"](token.element, token);\n };\n\n TokenListObserver.prototype.refreshTokensForElement = function (element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_a) {\n var previousToken = _a[0],\n currentToken = _a[1];\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n };\n\n TokenListObserver.prototype.readTokensForElement = function (element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n };\n\n return TokenListObserver;\n}();\n\nexport { TokenListObserver };\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}","import { TokenListObserver } from \"./token_list_observer\";\n\nvar ValueListObserver =\n/** @class */\nfunction () {\n function ValueListObserver(element, attributeName, delegate) {\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n Object.defineProperty(ValueListObserver.prototype, \"started\", {\n get: function get() {\n return this.tokenListObserver.started;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.start = function () {\n this.tokenListObserver.start();\n };\n\n ValueListObserver.prototype.stop = function () {\n this.tokenListObserver.stop();\n };\n\n ValueListObserver.prototype.refresh = function () {\n this.tokenListObserver.refresh();\n };\n\n Object.defineProperty(ValueListObserver.prototype, \"element\", {\n get: function get() {\n return this.tokenListObserver.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ValueListObserver.prototype, \"attributeName\", {\n get: function get() {\n return this.tokenListObserver.attributeName;\n },\n enumerable: true,\n configurable: true\n });\n\n ValueListObserver.prototype.tokenMatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.tokenUnmatched = function (token) {\n var element = token.element;\n var value = this.fetchParseResultForToken(token).value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element)[\"delete\"](token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n };\n\n ValueListObserver.prototype.fetchParseResultForToken = function (token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n };\n\n ValueListObserver.prototype.fetchValuesByTokenForElement = function (element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n };\n\n ValueListObserver.prototype.parseToken = function (token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n };\n\n return ValueListObserver;\n}();\n\nexport { ValueListObserver };","import { Action } from \"./action\";\nimport { Binding } from \"./binding\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar BindingObserver =\n/** @class */\nfunction () {\n function BindingObserver(context, delegate) {\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n BindingObserver.prototype.start = function () {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n };\n\n BindingObserver.prototype.stop = function () {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n };\n\n Object.defineProperty(BindingObserver.prototype, \"element\", {\n get: function get() {\n return this.context.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"identifier\", {\n get: function get() {\n return this.context.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"actionAttribute\", {\n get: function get() {\n return this.schema.actionAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"schema\", {\n get: function get() {\n return this.context.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BindingObserver.prototype, \"bindings\", {\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n },\n enumerable: true,\n configurable: true\n });\n\n BindingObserver.prototype.connectAction = function (action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n };\n\n BindingObserver.prototype.disconnectAction = function (action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction[\"delete\"](action);\n this.delegate.bindingDisconnected(binding);\n }\n };\n\n BindingObserver.prototype.disconnectAllActions = function () {\n var _this = this;\n\n this.bindings.forEach(function (binding) {\n return _this.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }; // Value observer delegate\n\n\n BindingObserver.prototype.parseValueForToken = function (token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n };\n\n BindingObserver.prototype.elementMatchedValue = function (element, action) {\n this.connectAction(action);\n };\n\n BindingObserver.prototype.elementUnmatchedValue = function (element, action) {\n this.disconnectAction(action);\n };\n\n return BindingObserver;\n}();\n\nexport { BindingObserver };","import { BindingObserver } from \"./binding_observer\";\n\nvar Context =\n/** @class */\nfunction () {\n function Context(module, scope) {\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n\n try {\n this.controller.initialize();\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n Context.prototype.connect = function () {\n this.bindingObserver.start();\n\n try {\n this.controller.connect();\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n };\n\n Context.prototype.disconnect = function () {\n try {\n this.controller.disconnect();\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.bindingObserver.stop();\n };\n\n Object.defineProperty(Context.prototype, \"application\", {\n get: function get() {\n return this.module.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"identifier\", {\n get: function get() {\n return this.module.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"dispatcher\", {\n get: function get() {\n return this.application.dispatcher;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Context.prototype, \"parentElement\", {\n get: function get() {\n return this.element.parentElement;\n },\n enumerable: true,\n configurable: true\n }); // Error handling\n\n Context.prototype.handleError = function (error, message, detail) {\n if (detail === void 0) {\n detail = {};\n }\n\n var _a = this,\n identifier = _a.identifier,\n controller = _a.controller,\n element = _a.element;\n\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \" + message, detail);\n };\n\n return Context;\n}();\n\nexport { Context };","var __extends = this && this.__extends || function () {\n var extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\n extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n}();\n/** @hidden */\n\n\nexport function blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: blessControllerConstructor(definition.controllerConstructor)\n };\n}\n\nfunction blessControllerConstructor(controllerConstructor) {\n var constructor = extend(controllerConstructor);\n constructor.bless();\n return constructor;\n}\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function Controller() {\n var _newTarget = this && this instanceof Controller ? this.constructor : void 0;\n\n return Reflect.construct(constructor, arguments, _newTarget);\n }\n\n Controller.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: Controller\n }\n });\n Reflect.setPrototypeOf(Controller, constructor);\n return Controller;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return (\n /** @class */\n function (_super) {\n __extends(Controller, _super);\n\n function Controller() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n return Controller;\n }(constructor)\n );\n };\n }\n}();","import { Context } from \"./context\";\nimport { blessDefinition } from \"./definition\";\n\nvar Module =\n/** @class */\nfunction () {\n function Module(application, definition) {\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n Object.defineProperty(Module.prototype, \"identifier\", {\n get: function get() {\n return this.definition.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"controllerConstructor\", {\n get: function get() {\n return this.definition.controllerConstructor;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Module.prototype, \"contexts\", {\n get: function get() {\n return Array.from(this.connectedContexts);\n },\n enumerable: true,\n configurable: true\n });\n\n Module.prototype.connectContextForScope = function (scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n };\n\n Module.prototype.disconnectContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts[\"delete\"](context);\n context.disconnect();\n }\n };\n\n Module.prototype.fetchContextForScope = function (scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n };\n\n return Module;\n}();\n\nexport { Module };","var DataMap =\n/** @class */\nfunction () {\n function DataMap(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(DataMap.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(DataMap.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n\n DataMap.prototype.get = function (key) {\n key = this.getFormattedKey(key);\n return this.element.getAttribute(key);\n };\n\n DataMap.prototype.set = function (key, value) {\n key = this.getFormattedKey(key);\n this.element.setAttribute(key, value);\n return this.get(key);\n };\n\n DataMap.prototype.has = function (key) {\n key = this.getFormattedKey(key);\n return this.element.hasAttribute(key);\n };\n\n DataMap.prototype[\"delete\"] = function (key) {\n if (this.has(key)) {\n key = this.getFormattedKey(key);\n this.element.removeAttribute(key);\n return true;\n } else {\n return false;\n }\n };\n\n DataMap.prototype.getFormattedKey = function (key) {\n return \"data-\" + this.identifier + \"-\" + dasherize(key);\n };\n\n return DataMap;\n}();\n\nexport { DataMap };\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, _char) {\n return \"-\" + _char.toLowerCase();\n });\n}","/** @hidden */\nexport function attributeValueContainsToken(attributeName, token) {\n return \"[\" + attributeName + \"~=\\\"\" + token + \"\\\"]\";\n}","import { attributeValueContainsToken } from \"./selectors\";\n\nvar TargetSet =\n/** @class */\nfunction () {\n function TargetSet(scope) {\n this.scope = scope;\n }\n\n Object.defineProperty(TargetSet.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(TargetSet.prototype, \"schema\", {\n get: function get() {\n return this.scope.schema;\n },\n enumerable: true,\n configurable: true\n });\n\n TargetSet.prototype.has = function (targetName) {\n return this.find(targetName) != null;\n };\n\n TargetSet.prototype.find = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findElement(selector);\n };\n\n TargetSet.prototype.findAll = function () {\n var targetNames = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n targetNames[_i] = arguments[_i];\n }\n\n var selector = this.getSelectorForTargetNames(targetNames);\n return this.scope.findAllElements(selector);\n };\n\n TargetSet.prototype.getSelectorForTargetNames = function (targetNames) {\n var _this = this;\n\n return targetNames.map(function (targetName) {\n return _this.getSelectorForTargetName(targetName);\n }).join(\", \");\n };\n\n TargetSet.prototype.getSelectorForTargetName = function (targetName) {\n var targetDescriptor = this.identifier + \".\" + targetName;\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n };\n\n return TargetSet;\n}();\n\nexport { TargetSet };","import { DataMap } from \"./data_map\";\nimport { TargetSet } from \"./target_set\";\nimport { attributeValueContainsToken } from \"./selectors\";\n\nvar Scope =\n/** @class */\nfunction () {\n function Scope(schema, identifier, element) {\n this.schema = schema;\n this.identifier = identifier;\n this.element = element;\n this.targets = new TargetSet(this);\n this.data = new DataMap(this);\n }\n\n Scope.prototype.findElement = function (selector) {\n return this.findAllElements(selector)[0];\n };\n\n Scope.prototype.findAllElements = function (selector) {\n var head = this.element.matches(selector) ? [this.element] : [];\n var tail = this.filterElements(Array.from(this.element.querySelectorAll(selector)));\n return head.concat(tail);\n };\n\n Scope.prototype.filterElements = function (elements) {\n var _this = this;\n\n return elements.filter(function (element) {\n return _this.containsElement(element);\n });\n };\n\n Scope.prototype.containsElement = function (element) {\n return element.closest(this.controllerSelector) === this.element;\n };\n\n Object.defineProperty(Scope.prototype, \"controllerSelector\", {\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n },\n enumerable: true,\n configurable: true\n });\n return Scope;\n}();\n\nexport { Scope };","import { Scope } from \"./scope\";\nimport { ValueListObserver } from \"@stimulus/mutation-observers\";\n\nvar ScopeObserver =\n/** @class */\nfunction () {\n function ScopeObserver(element, schema, delegate) {\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n ScopeObserver.prototype.start = function () {\n this.valueListObserver.start();\n };\n\n ScopeObserver.prototype.stop = function () {\n this.valueListObserver.stop();\n };\n\n Object.defineProperty(ScopeObserver.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n }); // Value observer delegate\n\n /** @hidden */\n\n ScopeObserver.prototype.parseValueForToken = function (token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = new Scope(this.schema, identifier, element);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementMatchedValue = function (element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n };\n /** @hidden */\n\n\n ScopeObserver.prototype.elementUnmatchedValue = function (element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n };\n\n ScopeObserver.prototype.fetchScopesByIdentifierForElement = function (element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n };\n\n return ScopeObserver;\n}();\n\nexport { ScopeObserver };","import { Module } from \"./module\";\nimport { Multimap } from \"@stimulus/multimap\";\nimport { ScopeObserver } from \"./scope_observer\";\n\nvar Router =\n/** @class */\nfunction () {\n function Router(application) {\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n Object.defineProperty(Router.prototype, \"element\", {\n get: function get() {\n return this.application.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"schema\", {\n get: function get() {\n return this.application.schema;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"controllerAttribute\", {\n get: function get() {\n return this.schema.controllerAttribute;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"modules\", {\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Router.prototype, \"contexts\", {\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n },\n enumerable: true,\n configurable: true\n });\n\n Router.prototype.start = function () {\n this.scopeObserver.start();\n };\n\n Router.prototype.stop = function () {\n this.scopeObserver.stop();\n };\n\n Router.prototype.loadDefinition = function (definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n };\n\n Router.prototype.unloadIdentifier = function (identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n };\n\n Router.prototype.getContextForElementAndIdentifier = function (element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }; // Error handler delegate\n\n /** @hidden */\n\n\n Router.prototype.handleError = function (error, message, detail) {\n this.application.handleError(error, message, detail);\n }; // Scope observer delegate\n\n /** @hidden */\n\n\n Router.prototype.scopeConnected = function (scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n };\n /** @hidden */\n\n\n Router.prototype.scopeDisconnected = function (scope) {\n this.scopesByIdentifier[\"delete\"](scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }; // Modules\n\n\n Router.prototype.connectModule = function (module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n };\n\n Router.prototype.disconnectModule = function (module) {\n this.modulesByIdentifier[\"delete\"](module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n };\n\n return Router;\n}();\n\nexport { Router };","export var defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\"\n};","var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\nvar __generator = this && this.__generator || function (thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [0, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n};\n\nimport { Dispatcher } from \"./dispatcher\";\nimport { Router } from \"./router\";\nimport { defaultSchema } from \"./schema\";\n\nvar Application =\n/** @class */\nfunction () {\n function Application(element, schema) {\n if (element === void 0) {\n element = document.documentElement;\n }\n\n if (schema === void 0) {\n schema = defaultSchema;\n }\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n Application.start = function (element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n };\n\n Application.prototype.start = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n return [4\n /*yield*/\n , domReady()];\n\n case 1:\n _a.sent();\n\n this.router.start();\n this.dispatcher.start();\n return [2\n /*return*/\n ];\n }\n });\n });\n };\n\n Application.prototype.stop = function () {\n this.router.stop();\n this.dispatcher.stop();\n };\n\n Application.prototype.register = function (identifier, controllerConstructor) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n };\n\n Application.prototype.load = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this.router.loadDefinition(definition);\n });\n };\n\n Application.prototype.unload = function (head) {\n var _this = this;\n\n var rest = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n rest[_i - 1] = arguments[_i];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this.router.unloadIdentifier(identifier);\n });\n };\n\n Object.defineProperty(Application.prototype, \"controllers\", {\n // Controllers\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n },\n enumerable: true,\n configurable: true\n });\n\n Application.prototype.getControllerForElementAndIdentifier = function (element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }; // Error handling\n\n\n Application.prototype.handleError = function (error, message, detail) {\n console.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n };\n\n return Application;\n}();\n\nexport { Application };\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", resolve);\n } else {\n resolve();\n }\n });\n}","/** @hidden */\nexport function defineTargetProperties(constructor) {\n var prototype = constructor.prototype;\n var targetNames = getTargetNamesForConstructor(constructor);\n targetNames.forEach(function (name) {\n var _a;\n\n return defineLinkedProperties(prototype, (_a = {}, _a[name + \"Target\"] = {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\" + this.identifier + \".\" + name + \"\\\"\");\n }\n }\n }, _a[name + \"Targets\"] = {\n get: function get() {\n return this.targets.findAll(name);\n }\n }, _a[\"has\" + capitalize(name) + \"Target\"] = {\n get: function get() {\n return this.targets.has(name);\n }\n }, _a));\n });\n}\n\nfunction getTargetNamesForConstructor(constructor) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (targetNames, constructor) {\n getOwnTargetNamesForConstructor(constructor).forEach(function (name) {\n return targetNames.add(name);\n });\n return targetNames;\n }, new Set()));\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors;\n}\n\nfunction getOwnTargetNamesForConstructor(constructor) {\n var definition = constructor[\"targets\"];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction defineLinkedProperties(object, properties) {\n Object.keys(properties).forEach(function (name) {\n if (!(name in object)) {\n var descriptor = properties[name];\n Object.defineProperty(object, name, descriptor);\n }\n });\n}\n\nfunction capitalize(name) {\n return name.charAt(0).toUpperCase() + name.slice(1);\n}","import { defineTargetProperties } from \"./target_properties\";\n\nvar Controller =\n/** @class */\nfunction () {\n function Controller(context) {\n this.context = context;\n }\n\n Controller.bless = function () {\n defineTargetProperties(this);\n };\n\n Object.defineProperty(Controller.prototype, \"application\", {\n get: function get() {\n return this.context.application;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"scope\", {\n get: function get() {\n return this.context.scope;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"element\", {\n get: function get() {\n return this.scope.element;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"identifier\", {\n get: function get() {\n return this.scope.identifier;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"targets\", {\n get: function get() {\n return this.scope.targets;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(Controller.prototype, \"data\", {\n get: function get() {\n return this.scope.data;\n },\n enumerable: true,\n configurable: true\n });\n\n Controller.prototype.initialize = function () {// Override in your subclass to set up initial controller state\n };\n\n Controller.prototype.connect = function () {// Override in your subclass to respond when the controller is connected to the DOM\n };\n\n Controller.prototype.disconnect = function () {// Override in your subclass to respond when the controller is disconnected from the DOM\n };\n\n Controller.targets = [];\n return Controller;\n}();\n\nexport { Controller };","'use strict';\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nvar constants = require('./constants');\n\nvar E = constants.typeErrors,\n trackPriority = constants.trackPriority;\n\nvar util = require('@twilio/webrtc/lib/util');\n/**\n * Return the given {@link LocalTrack} or a new {@link LocalTrack} for the\n * given MediaStreamTrack.\n * @param {LocalTrack|MediaStreamTrack} track\n * @param {object} options\n * @returns {LocalTrack}\n * @throws {TypeError}\n */\n\n\nfunction asLocalTrack(track, options) {\n if (track instanceof options.LocalAudioTrack || track instanceof options.LocalVideoTrack || track instanceof options.LocalDataTrack) {\n return track;\n }\n\n if (track instanceof options.MediaStreamTrack) {\n return track.kind === 'audio' ? new options.LocalAudioTrack(track, options) : new options.LocalVideoTrack(track, options);\n }\n /* eslint new-cap:0 */\n\n\n throw E.INVALID_TYPE('track', 'LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack');\n}\n/**\n * Create a new {@link LocalTrackPublication} for the given {@link LocalTrack}.\n * @param {LocalTrack} track\n * @param {LocalTrackPublicationSignaling} signaling\n * @param {function(track: LocalTrackPublication): void} unpublish\n * @param {object} options\n */\n\n\nfunction asLocalTrackPublication(track, signaling, unpublish, options) {\n var LocalTrackPublication = {\n audio: options.LocalAudioTrackPublication,\n video: options.LocalVideoTrackPublication,\n data: options.LocalDataTrackPublication\n }[track.kind];\n return new LocalTrackPublication(signaling, track, unpublish, options);\n}\n/**\n * Capitalize a word.\n * @param {string} word\n * @returns {string} capitalized\n */\n\n\nfunction capitalize(word) {\n return word[0].toUpperCase() + word.slice(1);\n}\n/**\n * Log deprecation warnings for the given events of an EventEmitter.\n * @param {string} name\n * @param {EventEmitter} emitter\n * @param {Map} events\n * @param {Log} log\n */\n\n\nfunction deprecateEvents(name, emitter, events, log) {\n var warningsShown = new Set();\n emitter.on('newListener', function newListener(event) {\n if (events.has(event) && !warningsShown.has(event)) {\n log.deprecated(name + '#' + event + ' has been deprecated and scheduled for removal in twilio-video.js@2.0.0.' + (events.get(event) ? ' Use ' + name + '#' + events.get(event) + ' instead.' : ''));\n warningsShown.add(event);\n }\n\n if (warningsShown.size >= events.size) {\n emitter.removeListener('newListener', newListener);\n }\n });\n}\n/**\n * Finds the items in list1 that are not in list2.\n * @param {Array<*>|Map<*>|Set<*>} list1\n * @param {Array<*>|Map<*>|Set<*>} list2\n * @returns {Set}\n */\n\n\nfunction difference(list1, list2) {\n list1 = Array.isArray(list1) ? new Set(list1) : new Set(list1.values());\n list2 = Array.isArray(list2) ? new Set(list2) : new Set(list2.values());\n var difference = new Set();\n list1.forEach(function (item) {\n if (!list2.has(item)) {\n difference.add(item);\n }\n });\n return difference;\n}\n/**\n * Filter out the keys in an object with a given value.\n * @param {object} object - Object to be filtered\n * @param {*} [filterValue] - Value to be filtered out; If not specified, then\n * filters out all keys which have an explicit value of \"undefined\"\n * @returns {object} - Filtered object\n */\n\n\nfunction filterObject(object, filterValue) {\n return Object.keys(object).reduce(function (filtered, key) {\n if (object[key] !== filterValue) {\n filtered[key] = object[key];\n }\n\n return filtered;\n }, {});\n}\n/**\n * Map a list to an array of arrays, and return the flattened result.\n * @param {Array<*>|Set<*>|Map<*>} list\n * @param {function(*): Array<*>} [mapFn]\n * @returns Array<*>\n */\n\n\nfunction flatMap(list, mapFn) {\n var listArray = list instanceof Map || list instanceof Set ? Array.from(list.values()) : list;\n\n mapFn = mapFn || function mapFn(item) {\n return item;\n };\n\n return listArray.reduce(function (flattened, item) {\n var mapped = mapFn(item);\n return flattened.concat(mapped);\n }, []);\n}\n/**\n * Get the user agent string, or return \"Unknown\".\n * @returns {string}\n */\n\n\nfunction getUserAgent() {\n return typeof navigator !== 'undefined' && navigator.userAgent ? navigator.userAgent : 'Unknown';\n}\n/**\n * Create a unique identifier.\n * @returns {string}\n */\n\n\nfunction makeUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Ensure that the given function is called once per tick.\n * @param {function} fn - Function to be executed\n * @returns {function} - Schedules the given function to be called on the next tick\n */\n\n\nfunction oncePerTick(fn) {\n var timeout = null;\n\n function nextTick() {\n timeout = null;\n fn();\n }\n\n return function scheduleNextTick() {\n if (timeout) {\n clearTimeout(timeout);\n }\n\n timeout = setTimeout(nextTick);\n };\n}\n\nfunction promiseFromEvents(operation, eventEmitter, successEvent, failureEvent) {\n return new Promise(function (resolve, reject) {\n function onSuccess() {\n var args = [].slice.call(arguments);\n\n if (failureEvent) {\n eventEmitter.removeListener(failureEvent, onFailure);\n }\n\n resolve.apply(undefined, _toConsumableArray(args));\n }\n\n function onFailure() {\n var args = [].slice.call(arguments);\n eventEmitter.removeListener(successEvent, onSuccess);\n reject.apply(undefined, _toConsumableArray(args));\n }\n\n eventEmitter.once(successEvent, onSuccess);\n\n if (failureEvent) {\n eventEmitter.once(failureEvent, onFailure);\n }\n\n operation();\n });\n}\n/**\n * Traverse down multiple nodes on an object and return null if\n * any link in the path is unavailable.\n * @param {Object} obj - Object to traverse\n * @param {String} path - Path to traverse. Period-separated.\n * @returns {Any|null}\n */\n\n\nfunction getOrNull(obj, path) {\n return path.split('.').reduce(function (output, step) {\n if (!output) {\n return null;\n }\n\n return output[step];\n }, obj);\n}\n/**\n * @typedef {object} Deferred\n * @property {Promise} promise\n * @property {function} reject\n * @property {function} resolve\n */\n\n/**\n * Create a {@link Deferred}.\n * @returns {Deferred}\n */\n\n\nfunction defer() {\n var deferred = {};\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n/**\n * Copy a method from a `source` prototype onto a `wrapper` prototype. Invoking\n * the method on the `wrapper` prototype will invoke the corresponding method\n * on an instance accessed by `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @param {string} methodName\n * @returns {undefined}\n */\n\n\nfunction delegateMethod(source, wrapper, target, methodName) {\n if (methodName in wrapper) {\n // Skip any methods already set.\n return;\n } else if (methodName.match(/^on[a-z]+$/)) {\n // Skip EventHandlers (these are handled in the constructor).\n return;\n }\n\n var type = void 0;\n\n try {\n type = _typeof(source[methodName]);\n } catch (error) {// NOTE(mroberts): Attempting to check the type of non-function members\n // on the prototype throws an error for some types.\n }\n\n if (type !== 'function') {\n // Skip non-function members.\n return;\n }\n /* eslint no-loop-func:0 */\n\n\n wrapper[methodName] = function () {\n var _target;\n\n return (_target = this[target])[methodName].apply(_target, arguments);\n };\n}\n/**\n * Copy methods from a `source` prototype onto a `wrapper` prototype. Invoking\n * the methods on the `wrapper` prototype will invoke the corresponding method\n * on an instance accessed by `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @returns {undefined}\n */\n\n\nfunction delegateMethods(source, wrapper, target) {\n for (var methodName in source) {\n delegateMethod(source, wrapper, target, methodName);\n }\n}\n/**\n * Determine whether two values are deeply equal.\n * @param {*} val1\n * @param {*} val2\n * @returns {boolean}\n */\n\n\nfunction isDeepEqual(val1, val2) {\n if (val1 === val2) {\n return true;\n }\n\n if ((typeof val1 === 'undefined' ? 'undefined' : _typeof(val1)) !== (typeof val2 === 'undefined' ? 'undefined' : _typeof(val2))) {\n return false;\n }\n\n if (val1 === null) {\n return val2 === null;\n }\n\n if (val2 === null) {\n return false;\n }\n\n if (Array.isArray(val1)) {\n return Array.isArray(val2) && val1.length === val2.length && val1.every(function (val, i) {\n return isDeepEqual(val, val2[i]);\n });\n }\n\n if ((typeof val1 === 'undefined' ? 'undefined' : _typeof(val1)) === 'object') {\n var val1Keys = Object.keys(val1).sort();\n var val2Keys = Object.keys(val2).sort();\n return !Array.isArray(val2) && isDeepEqual(val1Keys, val2Keys) && val1Keys.every(function (key) {\n return isDeepEqual(val1[key], val2[key]);\n });\n }\n\n return false;\n}\n/**\n * Whether the given argument is a non-array object.\n * @param {*} object\n * @return {boolean}\n */\n\n\nfunction isNonArrayObject(object) {\n return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && !Array.isArray(object);\n}\n/**\n * For each property name on the `source` prototype, add getters and/or setters\n * to `wrapper` that proxy to `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @returns {undefined}\n */\n\n\nfunction proxyProperties(source, wrapper, target) {\n Object.getOwnPropertyNames(source).forEach(function (propertyName) {\n proxyProperty(source, wrapper, target, propertyName);\n });\n}\n/**\n * For the property name on the `source` prototype, add a getter and/or setter\n * to `wrapper` that proxies to `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @param {string} propertyName\n * @returns {undefined}\n */\n\n\nfunction proxyProperty(source, wrapper, target, propertyName) {\n if (propertyName in wrapper) {\n // Skip any properties already set.\n return;\n } else if (propertyName.match(/^on[a-z]+$/)) {\n Object.defineProperty(wrapper, propertyName, {\n value: null,\n writable: true\n });\n target.addEventListener(propertyName.slice(2), function () {\n wrapper.dispatchEvent.apply(wrapper, arguments);\n });\n return;\n }\n\n Object.defineProperty(wrapper, propertyName, {\n enumerable: true,\n get: function get() {\n return target[propertyName];\n }\n });\n}\n/**\n * This is a function for turning a Promise into the kind referenced in the\n * Legacy Interface Extensions section of the WebRTC spec.\n * @param {Promise<*>} promise\n * @param {function<*>} onSuccess\n * @param {function} onFailure\n * @returns {Promise}\n */\n\n\nfunction legacyPromise(promise, onSuccess, onFailure) {\n if (onSuccess) {\n return promise.then(function (result) {\n onSuccess(result);\n }, function (error) {\n onFailure(error);\n });\n }\n\n return promise;\n}\n/**\n * Build the {@link LogLevels} object.\n * @param {String|LogLevel} logLevel - Log level name or object\n * @returns {LogLevels}\n */\n\n\nfunction buildLogLevels(logLevel) {\n if (typeof logLevel === 'string') {\n return {\n \"default\": logLevel,\n media: logLevel,\n signaling: logLevel,\n webrtc: logLevel\n };\n }\n\n return logLevel;\n}\n/**\n * Get the {@link Track}'s derived class name\n * @param {Track} track\n * @param {?boolean} [local=undefined]\n * @returns {string}\n */\n\n\nfunction trackClass(track, local) {\n local = local ? 'Local' : '';\n return local + (track.kind || '').replace(/\\w{1}/, function (m) {\n return m.toUpperCase();\n }) + 'Track';\n}\n/**\n * Get the {@link TrackPublication}'s derived class name\n * @param {TrackPublication} publication\n * @param {?boolean} [local=undefined]\n * @returns {string}\n */\n\n\nfunction trackPublicationClass(publication, local) {\n local = local ? 'Local' : '';\n return local + (publication.kind || '').replace(/\\w{1}/, function (m) {\n return m.toUpperCase();\n }) + 'TrackPublication';\n}\n/**\n * Sets all underscore-prefixed properties on `object` non-enumerable.\n * @param {Object} object\n * @returns {void}\n */\n\n\nfunction hidePrivateProperties(object) {\n Object.getOwnPropertyNames(object).forEach(function (name) {\n if (name.startsWith('_')) {\n hideProperty(object, name);\n }\n });\n}\n/**\n * Creates a new subclass which, in the constructor, sets all underscore-prefixed\n * properties and the given public properties non-enumerable. This is useful for\n * patching up classes like EventEmitter which may set properties like `_events`\n * and `domain`.\n * @param {Function} klass\n * @param {Array} props\n * @returns {Function} subclass\n */\n\n\nfunction hidePrivateAndCertainPublicPropertiesInClass(klass, props) {\n // NOTE(mroberts): We do this to avoid giving the class a name.\n return function (_klass) {\n _inherits(_class, _klass);\n\n function _class() {\n var _ref;\n\n _classCallCheck(this, _class);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var _this = _possibleConstructorReturn(this, (_ref = _class.__proto__ || Object.getPrototypeOf(_class)).call.apply(_ref, [this].concat(args)));\n\n hidePrivateProperties(_this);\n hidePublicProperties(_this, props);\n return _this;\n }\n\n return _class;\n }(klass);\n}\n/**\n * Hide a property of an object.\n * @param {object} object\n * @param {string} name\n */\n\n\nfunction hideProperty(object, name) {\n var descriptor = Object.getOwnPropertyDescriptor(object, name);\n descriptor.enumerable = false;\n Object.defineProperty(object, name, descriptor);\n}\n/**\n * Hide the given public properties of an object.\n * @param {object} object\n * @param {Array} [props=[]]\n */\n\n\nfunction hidePublicProperties(object) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n props.forEach(function (name) {\n // eslint-disable-next-line no-prototype-builtins\n if (object.hasOwnProperty(name)) {\n hideProperty(object, name);\n }\n });\n}\n/**\n * Convert an Array of values to an Array of JSON values by calling\n * `valueToJSON` on each value.\n * @param {Array<*>} array\n * @returns {Array<*>}\n */\n\n\nfunction arrayToJSON(array) {\n return array.map(valueToJSON);\n}\n/**\n * Convert a Set of values to an Array of JSON values by calling `valueToJSON`\n * on each value.\n * @param {Set<*>} set\n * @returns {Array<*>}\n */\n\n\nfunction setToJSON(set) {\n return arrayToJSON([].concat(_toConsumableArray(set)));\n}\n/**\n * Convert a Map from strings to values to an object of JSON values by calling\n * `valueToJSON` on each value.\n * @param {Map} map\n * @returns {object}\n */\n\n\nfunction mapToJSON(map) {\n return [].concat(_toConsumableArray(map.entries())).reduce(function (json, _ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n value = _ref3[1];\n\n return Object.assign(_defineProperty({}, key, valueToJSON(value)), json);\n }, {});\n}\n/**\n * Convert an object to a JSON value by calling `valueToJSON` on its enumerable\n * keys.\n * @param {object} object\n * @returns {object}\n */\n\n\nfunction objectToJSON(object) {\n return Object.entries(object).reduce(function (json, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n value = _ref5[1];\n\n return Object.assign(_defineProperty({}, key, valueToJSON(value)), json);\n }, {});\n}\n/**\n * Convert a value into a JSON value.\n * @param {*} value\n * @returns {*}\n */\n\n\nfunction valueToJSON(value) {\n if (Array.isArray(value)) {\n return arrayToJSON(value);\n } else if (value instanceof Set) {\n return setToJSON(value);\n } else if (value instanceof Map) {\n return mapToJSON(value);\n } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n return objectToJSON(value);\n }\n\n return value;\n}\n/**\n * Create the bandwidth profile payload included in an RSP connect message.\n * @param {BandwidthProfileOptions} bandwidthProfile\n * @returns {object}\n */\n\n\nfunction createBandwidthProfilePayload(bandwidthProfile) {\n return createRSPPayload(bandwidthProfile, [{\n prop: 'video',\n type: 'object',\n transform: createBandwidthProfileVideoPayload\n }]);\n}\n/**\n * Create the bandwidth profile video payload included in an RSP connect message.\n * @param {VideoBandwidthProfileOptions} bandwidthProfileVideo\n * @returns {object}\n */\n\n\nfunction createBandwidthProfileVideoPayload(bandwidthProfileVideo) {\n return createRSPPayload(bandwidthProfileVideo, [{\n prop: 'dominantSpeakerPriority',\n type: 'string',\n payloadProp: 'active_speaker_priority'\n }, {\n prop: 'maxSubscriptionBitrate',\n type: 'number',\n payloadProp: 'max_subscription_bandwidth'\n }, {\n prop: 'maxTracks',\n type: 'number',\n payloadProp: 'max_tracks'\n }, {\n prop: 'mode',\n type: 'string'\n }, {\n prop: 'renderDimensions',\n type: 'object',\n payloadProp: 'render_dimensions',\n transform: createRenderDimensionsPayload\n }, {\n prop: 'trackSwitchOffMode',\n type: 'string',\n payloadProp: 'track_switch_off'\n }]);\n}\n/**\n * Create the Media Signaling payload included in an RSP connect message.\n * @param {boolean} dominantSpeaker - whether to enable the Dominant Speaker\n * protocol or not\n * @param {boolean} networkQuality - whether to enable the Network Quality\n * protocol or not\n * @param {boolean} trackPriority - whether to enable the Track Priority\n * protocol or not\n * @param {boolean} trackSwitchOff - whether to enable the Track Switch-Off\n * protocol or not.\n * @returns {object}\n */\n\n\nfunction createMediaSignalingPayload(dominantSpeaker, networkQuality, trackPriority, trackSwitchOff) {\n var transports = {\n transports: [{\n type: 'data-channel'\n }]\n };\n return Object.assign(dominantSpeaker // eslint-disable-next-line\n ? {\n active_speaker: transports\n } : {}, networkQuality // eslint-disable-next-line\n ? {\n network_quality: transports\n } : {}, trackPriority // eslint-disable-next-line\n ? {\n track_priority: transports\n } : {}, trackSwitchOff // eslint-disable-next-line\n ? {\n track_switch_off: transports\n } : {});\n}\n/**\n * Create {@link VideoTrack.Dimensions} RSP payload.\n * @param {VideoTrack.Dimensions} [dimensions]\n * @returns {object}\n */\n\n\nfunction createDimensionsPayload(dimensions) {\n return createRSPPayload(dimensions, [{\n prop: 'height',\n type: 'number'\n }, {\n prop: 'width',\n type: 'number'\n }]);\n}\n/**\n * Create {@link VideoRenderDimensions} RSP payload.\n * @param renderDimensions\n * @returns {object}\n */\n\n\nfunction createRenderDimensionsPayload(renderDimensions) {\n var PRIORITY_HIGH = trackPriority.PRIORITY_HIGH,\n PRIORITY_LOW = trackPriority.PRIORITY_LOW,\n PRIORITY_STANDARD = trackPriority.PRIORITY_STANDARD;\n return createRSPPayload(renderDimensions, [{\n prop: PRIORITY_HIGH,\n type: 'object',\n transform: createDimensionsPayload\n }, {\n prop: PRIORITY_LOW,\n type: 'object',\n transform: createDimensionsPayload\n }, {\n prop: PRIORITY_STANDARD,\n type: 'object',\n transform: createDimensionsPayload\n }]);\n}\n/**\n * Create an RSP payload for the given object.\n * @param {object} object - object for which RSP payload is to be generated\n * @param {Array} propConversions - conversion rules for object properties;\n * they specify how object properties should be converted to their corresponding\n * RSP payload properties\n * @returns {object}\n */\n\n\nfunction createRSPPayload(object, propConversions) {\n return propConversions.reduce(function (payload, _ref6) {\n var prop = _ref6.prop,\n type = _ref6.type,\n _ref6$payloadProp = _ref6.payloadProp,\n payloadProp = _ref6$payloadProp === undefined ? prop : _ref6$payloadProp,\n _ref6$transform = _ref6.transform,\n transform = _ref6$transform === undefined ? function (x) {\n return x;\n } : _ref6$transform;\n return _typeof(object[prop]) === type ? Object.assign(_defineProperty({}, payloadProp, transform(object[prop])), payload) : payload;\n }, {});\n}\n/**\n * Create the subscribe payload included in an RSP connect/update message.\n * @param {boolean} automaticSubscription - whether to subscribe to all RemoteTracks\n * @returns {object}\n */\n\n\nfunction createSubscribePayload(automaticSubscription) {\n return {\n rules: [{\n type: automaticSubscription ? 'include' : 'exclude',\n all: true\n }],\n revision: 1\n };\n}\n/**\n * Add random jitter to a given value in the range [-jitter, jitter].\n * @private\n * @param {number} value\n * @param {number} jitter\n * @returns {number} value + random(-jitter, +jitter)\n */\n\n\nfunction withJitter(value, jitter) {\n var rand = Math.random();\n return value - jitter + Math.floor(2 * jitter * rand + 0.5);\n}\n/**\n * Checks if the a number is in the range [min, max].\n * @private\n * @param {num} num\n * @param {number} min\n * @param {number} max\n * @return {boolean}\n */\n\n\nfunction inRange(num, min, max) {\n return min <= num && num <= max;\n}\n/**\n * returns true if given MediaStreamTrack is a screen share track\n * @private\n * @param {MediaStreamTrack} track\n * @returns {boolean}\n */\n\n\nfunction isChromeScreenShareTrack(track) {\n // NOTE(mpatwardhan): Chrome creates screen share tracks with label like: \"screen:69734272*\"\n // we will check for label that starts with \"screen:D\" where D being a digit.\n var isChrome = util.guessBrowser() === 'chrome';\n return isChrome && track.kind === 'video' && track.label && /^screen:[0-9]+/.test(track.label);\n}\n\nexports.constants = constants;\nexports.createBandwidthProfilePayload = createBandwidthProfilePayload;\nexports.createMediaSignalingPayload = createMediaSignalingPayload;\nexports.createSubscribePayload = createSubscribePayload;\nexports.asLocalTrack = asLocalTrack;\nexports.asLocalTrackPublication = asLocalTrackPublication;\nexports.capitalize = capitalize;\nexports.deprecateEvents = deprecateEvents;\nexports.difference = difference;\nexports.filterObject = filterObject;\nexports.flatMap = flatMap;\nexports.getUserAgent = getUserAgent;\nexports.hidePrivateProperties = hidePrivateProperties;\nexports.hidePrivateAndCertainPublicPropertiesInClass = hidePrivateAndCertainPublicPropertiesInClass;\nexports.isDeepEqual = isDeepEqual;\nexports.isNonArrayObject = isNonArrayObject;\nexports.inRange = inRange;\nexports.makeUUID = makeUUID;\nexports.oncePerTick = oncePerTick;\nexports.promiseFromEvents = promiseFromEvents;\nexports.getOrNull = getOrNull;\nexports.defer = defer;\nexports.delegateMethods = delegateMethods;\nexports.proxyProperties = proxyProperties;\nexports.legacyPromise = legacyPromise;\nexports.buildLogLevels = buildLogLevels;\nexports.trackClass = trackClass;\nexports.trackPublicationClass = trackPublicationClass;\nexports.valueToJSON = valueToJSON;\nexports.withJitter = withJitter;\nexports.isChromeScreenShareTrack = isChromeScreenShareTrack;","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar R = (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + _typeof(listener));\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n checkListener(listener);\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = _getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0) return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n checkListener(listener);\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","'use strict';\n\nmodule.exports.DEFAULT_ENVIRONMENT = 'prod';\nmodule.exports.DEFAULT_REALM = 'us1';\nmodule.exports.DEFAULT_REGION = 'gll';\nmodule.exports.DEFAULT_LOG_LEVEL = 'warn';\n\nmodule.exports.WS_SERVER = function (environment, region) {\n region = region === 'gll' ? 'global' : encodeURIComponent(region);\n return environment === 'prod' ? 'wss://' + region + '.vss.twilio.com/signaling' : 'wss://' + region + '.vss.' + environment + '.twilio.com/signaling';\n};\n\nmodule.exports.ECS_SERVER = function (environment, realm) {\n switch (environment) {\n case 'prod':\n return 'https://ecs.' + realm + '.twilio.com';\n\n default:\n return 'https://ecs.' + environment + '-' + realm + '.twilio.com';\n }\n};\n\nmodule.exports.ECS_TIMEOUT = 60;\nmodule.exports.PUBLISH_MAX_ATTEMPTS = 5;\nmodule.exports.PUBLISH_BACKOFF_JITTER = 10;\nmodule.exports.PUBLISH_BACKOFF_MS = 20;\nmodule.exports.ICE_SERVERS_TIMEOUT_MS = 3000;\nmodule.exports.ICE_SERVERS_DEFAULT_TTL = 3600;\n\nmodule.exports.DEFAULT_ICE_SERVERS = function (environment) {\n switch (environment) {\n case 'prod':\n return [{\n urls: 'stun:global.stun.twilio.com:3478?transport=udp'\n }];\n\n default:\n return [{\n urls: 'stun:global.stun.' + environment + '.twilio.com:3478?transport=udp'\n }];\n }\n}; // Headers\n\n/* eslint key-spacing:0 */\n\n\nmodule.exports.headers = {\n X_TWILIO_ACCESSTOKEN: 'X-Twilio-AccessToken'\n};\n/**\n * Returns the appropriate indefinite article (\"a\" | \"an\").\n * @param {string} word - The word which determines whether \"a\" | \"an\" is returned\n * @returns {string} \"a\" if word's first letter is a vowel, \"an\" otherwise\n */\n\nfunction article(word) {\n // NOTE(mmalavalli): This will not be accurate for words like \"hour\",\n // which have consonants as their first character, but are pronounced like\n // vowels. We can address this issue if the need arises.\n return ['a', 'e', 'i', 'o', 'u'].includes(word.toLowerCase()[0]) ? 'an' : 'a';\n}\n\nmodule.exports.typeErrors = {\n INVALID_TYPE: function INVALID_TYPE(name, type) {\n return new TypeError(name + ' must be ' + article(type) + ' ' + type);\n },\n INVALID_VALUE: function INVALID_VALUE(name, values) {\n return new RangeError(name + ' must be one of ' + values.join(', '));\n },\n REQUIRED_ARGUMENT: function REQUIRED_ARGUMENT(name) {\n return new TypeError(name + ' must be specified');\n }\n};\nmodule.exports.DEFAULT_ICE_GATHERING_TIMEOUT_MS = 15000;\nmodule.exports.DEFAULT_SESSION_TIMEOUT_SEC = 30;\nmodule.exports.DEFAULT_NQ_LEVEL_LOCAL = 1;\nmodule.exports.DEFAULT_NQ_LEVEL_REMOTE = 0;\nmodule.exports.MAX_NQ_LEVEL = 3;\nmodule.exports.ICE_ACTIVITY_CHECK_PERIOD_MS = 1000;\nmodule.exports.ICE_INACTIVITY_THRESHOLD_MS = 3000;\nmodule.exports.iceRestartBackoffConfig = {\n factor: 1.1,\n initialDelay: 1,\n maxDelay: module.exports.DEFAULT_SESSION_TIMEOUT_SEC * 1000,\n randomisationFactor: 0.5\n};\nmodule.exports.reconnectBackoffConfig = {\n factor: 1.5,\n initialDelay: 80,\n randomisationFactor: 0.5\n};\nmodule.exports.subscriptionMode = {\n MODE_COLLABORATION: 'collaboration',\n MODE_GRID: 'grid',\n MODE_PRESENTATION: 'presentation'\n};\nmodule.exports.trackSwitchOffMode = {\n MODE_DISABLED: 'disabled',\n MODE_DETECTED: 'detected',\n MODE_PREDICTED: 'predicted'\n};\nmodule.exports.trackPriority = {\n PRIORITY_HIGH: 'high',\n PRIORITY_LOW: 'low',\n PRIORITY_STANDARD: 'standard'\n};","'use strict';\n/**\n * Create a {@link Deferred}.\n * @returns {Deferred}\n */\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction defer() {\n var deferred = {};\n deferred.promise = new Promise(function (resolve, reject) {\n deferred.resolve = resolve;\n deferred.reject = reject;\n });\n return deferred;\n}\n/**\n * Copy a method from a `source` prototype onto a `wrapper` prototype. Invoking\n * the method on the `wrapper` prototype will invoke the corresponding method\n * on an instance accessed by `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @param {string} methodName\n * @returns {undefined}\n */\n\n\nfunction delegateMethod(source, wrapper, target, methodName) {\n if (methodName in wrapper) {\n // Skip any methods already set.\n return;\n } else if (methodName.match(/^on[a-z]+$/)) {\n // Skip EventHandlers (these are handled in the constructor).\n return;\n }\n\n var type;\n\n try {\n type = _typeof(source[methodName]);\n } catch (error) {// NOTE(mroberts): Attempting to check the type of non-function members\n // on the prototype throws an error for some types.\n }\n\n if (type !== 'function') {\n // Skip non-function members.\n return;\n }\n /* eslint no-loop-func:0 */\n\n\n wrapper[methodName] = function () {\n return this[target][methodName].apply(this[target], arguments);\n };\n}\n/**\n * Copy methods from a `source` prototype onto a `wrapper` prototype. Invoking\n * the methods on the `wrapper` prototype will invoke the corresponding method\n * on an instance accessed by `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @returns {undefined}\n */\n\n\nfunction delegateMethods(source, wrapper, target) {\n for (var methodName in source) {\n delegateMethod(source, wrapper, target, methodName);\n }\n}\n/**\n * Finds the items in list1 that are not in list2.\n * @param {Array<*>|Map<*>|Set<*>} list1\n * @param {Array<*>|Map<*>|Set<*>} list2\n * @returns {Set}\n */\n\n\nfunction difference(list1, list2) {\n list1 = Array.isArray(list1) ? new Set(list1) : new Set(list1.values());\n list2 = Array.isArray(list2) ? new Set(list2) : new Set(list2.values());\n var difference = new Set();\n list1.forEach(function (item) {\n if (!list2.has(item)) {\n difference.add(item);\n }\n });\n return difference;\n}\n/**\n * Map a list to an array of arrays, and return the flattened result.\n * @param {Array<*>|Set<*>|Map<*>} list\n * @param {function(*): Array<*>} mapFn\n * @returns Array<*>\n */\n\n\nfunction flatMap(list, mapFn) {\n var listArray = list instanceof Map || list instanceof Set ? Array.from(list.values()) : list;\n return listArray.reduce(function (flattened, item) {\n var mapped = mapFn(item);\n return flattened.concat(mapped);\n }, []);\n}\n/**\n * Get the browser's user agent, if available.\n * @returns {?string}\n */\n\n\nfunction getUserAgent() {\n return typeof navigator !== 'undefined' && typeof navigator.userAgent === 'string' ? navigator.userAgent : null;\n}\n/**\n * Guess the browser.\n * @param {string} [userAgent=navigator.userAgent]\n * @returns {?string} browser - \"chrome\", \"firefox\", \"safari\", or null\n */\n\n\nfunction guessBrowser(userAgent) {\n if (typeof userAgent === 'undefined') {\n userAgent = getUserAgent();\n }\n\n if (/Chrome|CriOS/.test(userAgent)) {\n return 'chrome';\n }\n\n if (/Firefox|FxiOS/.test(userAgent)) {\n return 'firefox';\n }\n\n if (/Safari/.test(userAgent)) {\n return 'safari';\n }\n\n return null;\n}\n/**\n * Guess the browser version.\n * @param {string} [userAgent=navigator.userAgent]\n * @returns {?{major: number, minor: number}}\n */\n\n\nfunction guessBrowserVersion(userAgent) {\n if (typeof userAgent === 'undefined') {\n userAgent = getUserAgent();\n }\n\n var prefix = {\n chrome: 'Chrome|CriOS',\n firefox: 'Firefox|FxiOS',\n safari: 'Version'\n }[guessBrowser(userAgent)];\n\n if (!prefix) {\n return null;\n }\n\n var regex = new RegExp('(' + prefix + ')/([^\\\\s]+)');\n var match = (userAgent.match(regex) || [])[2];\n\n if (!match) {\n return null;\n }\n\n var versions = match.split('.').map(Number);\n return {\n major: isNaN(versions[0]) ? null : versions[0],\n minor: isNaN(versions[1]) ? null : versions[1]\n };\n}\n/**\n * Intercept an event that might otherwise be proxied on an EventTarget.\n * @param {EventTarget} target\n * @param {string} type\n * @returns {void}\n */\n\n\nfunction interceptEvent(target, type) {\n var currentListener = null;\n Object.defineProperty(target, 'on' + type, {\n get: function get() {\n return currentListener;\n },\n set: function set(newListener) {\n if (currentListener) {\n this.removeEventListener(type, currentListener);\n }\n\n if (typeof newListener === 'function') {\n currentListener = newListener;\n this.addEventListener(type, currentListener);\n } else {\n currentListener = null;\n }\n }\n });\n}\n/**\n * This is a function for turning a Promise into the kind referenced in the\n * Legacy Interface Extensions section of the WebRTC spec.\n * @param {Promise<*>} promise\n * @param {function<*>} onSuccess\n * @param {function} onFailure\n * @returns {Promise}\n */\n\n\nfunction legacyPromise(promise, onSuccess, onFailure) {\n if (onSuccess) {\n return promise.then(function (result) {\n onSuccess(result);\n }, function (error) {\n onFailure(error);\n });\n }\n\n return promise;\n}\n/**\n * Make a unique ID.\n * @return {string}\n */\n\n\nfunction makeUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n return v.toString(16);\n });\n}\n/**\n * For each property name on the `source` prototype, add getters and/or setters\n * to `wrapper` that proxy to `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @returns {undefined}\n */\n\n\nfunction proxyProperties(source, wrapper, target) {\n Object.getOwnPropertyNames(source).forEach(function (propertyName) {\n proxyProperty(source, wrapper, target, propertyName);\n });\n}\n/**\n * For the property name on the `source` prototype, add a getter and/or setter\n * to `wrapper` that proxies to `target`.\n * @param {object} source\n * @param {object} wrapper\n * @param {string} target\n * @param {string} propertyName\n * @returns {undefined}\n */\n\n\nfunction proxyProperty(source, wrapper, target, propertyName) {\n if (propertyName in wrapper) {\n // Skip any properties already set.\n return;\n } else if (propertyName.match(/^on[a-z]+$/)) {\n Object.defineProperty(wrapper, propertyName, {\n value: null,\n writable: true\n });\n target.addEventListener(propertyName.slice(2), function () {\n wrapper.dispatchEvent.apply(wrapper, arguments);\n });\n return;\n }\n\n Object.defineProperty(wrapper, propertyName, {\n enumerable: true,\n get: function get() {\n return target[propertyName];\n }\n });\n}\n/**\n * @typedef {object} Deferred\n * @property {Promise} promise\n * @property {function} reject\n * @property {function} resolve\n */\n\n\nexports.defer = defer;\nexports.delegateMethods = delegateMethods;\nexports.difference = difference;\nexports.flatMap = flatMap;\nexports.guessBrowser = guessBrowser;\nexports.guessBrowserVersion = guessBrowserVersion;\nexports.interceptEvent = interceptEvent;\nexports.legacyPromise = legacyPromise;\nexports.makeUUID = makeUUID;\nexports.proxyProperties = proxyProperties;","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var core = module.exports = { version: '2.6.11' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n\n return descriptors;\n};\n\nvar formatRegExp = /%[sdj%]/g;\n\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n}; // Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\n\n\nexports.deprecate = function (fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n } // Allow for deprecating things in the process of starting up.\n\n\n if (typeof process === 'undefined') {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnviron;\n\nexports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n};\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n/* legacy: obj, showHidden, depth, colors*/\n\n\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\nexports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n}; // Don't use 'blue' not visible on cmd.exe\n\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n} // NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return _typeof(arg) === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return _typeof(arg) === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || _typeof(arg) === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n} // log is just a thin wrapper to console.log that prepends a timestamp\n\n\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\nexports.inherits = require('inherits');\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function') throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n};\n\nexports.promisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n } // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n\n\n function callbackified() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n\n var self = this;\n\n var cb = function cb() {\n return maybeCb.apply(self, arguments);\n }; // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n\n\n original.apply(this, args).then(function (ret) {\n process.nextTick(cb, null, ret);\n }, function (rej) {\n process.nextTick(callbackifyOnRejected, rej, cb);\n });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nexports.callbackify = callbackify;","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// NOTE: Do not edit this file. This code is auto-generated. Contact the\n// Twilio SDK Team for more information.\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TwilioError = require('./twilioerror');\n\nvar TwilioErrorByCode = {};\n/**\n * Create a {@link TwilioError} for a given code and message.\n * @private\n * @param {number} [code] - Error code\n * @param {string} [message] - Error message\n * @returns {TwilioError}\n */\n\nexports.createTwilioError = function createTwilioError(code, message) {\n code = typeof code === 'number' ? code : 0;\n message = typeof message === 'string' && message ? message : 'Unknown error';\n return TwilioErrorByCode[code] ? new TwilioErrorByCode[code]() : new TwilioError(code, message);\n};\n/**\n * @class AccessTokenInvalidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room is invalid.\n * @extends TwilioError\n * @property {number} code - 20101\n * @property {string} message - 'Invalid Access Token'\n */\n\n\nvar AccessTokenInvalidError = function (_TwilioError) {\n _inherits(AccessTokenInvalidError, _TwilioError);\n\n function AccessTokenInvalidError() {\n _classCallCheck(this, AccessTokenInvalidError);\n\n return _possibleConstructorReturn(this, (AccessTokenInvalidError.__proto__ || Object.getPrototypeOf(AccessTokenInvalidError)).call(this, 20101, 'Invalid Access Token'));\n }\n\n return AccessTokenInvalidError;\n}(TwilioError);\n\nexports.AccessTokenInvalidError = AccessTokenInvalidError;\nObject.defineProperty(TwilioErrorByCode, 20101, {\n value: AccessTokenInvalidError\n});\n/**\n * @class AccessTokenHeaderInvalidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room has an invalid header.\n * @extends TwilioError\n * @property {number} code - 20102\n * @property {string} message - 'Invalid Access Token header'\n */\n\nvar AccessTokenHeaderInvalidError = function (_TwilioError2) {\n _inherits(AccessTokenHeaderInvalidError, _TwilioError2);\n\n function AccessTokenHeaderInvalidError() {\n _classCallCheck(this, AccessTokenHeaderInvalidError);\n\n return _possibleConstructorReturn(this, (AccessTokenHeaderInvalidError.__proto__ || Object.getPrototypeOf(AccessTokenHeaderInvalidError)).call(this, 20102, 'Invalid Access Token header'));\n }\n\n return AccessTokenHeaderInvalidError;\n}(TwilioError);\n\nexports.AccessTokenHeaderInvalidError = AccessTokenHeaderInvalidError;\nObject.defineProperty(TwilioErrorByCode, 20102, {\n value: AccessTokenHeaderInvalidError\n});\n/**\n * @class AccessTokenIssuerInvalidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room contains an invalid issuer or subject.\n * @extends TwilioError\n * @property {number} code - 20103\n * @property {string} message - 'Invalid Access Token issuer/subject'\n */\n\nvar AccessTokenIssuerInvalidError = function (_TwilioError3) {\n _inherits(AccessTokenIssuerInvalidError, _TwilioError3);\n\n function AccessTokenIssuerInvalidError() {\n _classCallCheck(this, AccessTokenIssuerInvalidError);\n\n return _possibleConstructorReturn(this, (AccessTokenIssuerInvalidError.__proto__ || Object.getPrototypeOf(AccessTokenIssuerInvalidError)).call(this, 20103, 'Invalid Access Token issuer/subject'));\n }\n\n return AccessTokenIssuerInvalidError;\n}(TwilioError);\n\nexports.AccessTokenIssuerInvalidError = AccessTokenIssuerInvalidError;\nObject.defineProperty(TwilioErrorByCode, 20103, {\n value: AccessTokenIssuerInvalidError\n});\n/**\n * @class AccessTokenExpiredError\n * @classdesc Raised whenever the AccessToken used for connecting, or reconnecting to a Room has expired.\n * @extends TwilioError\n * @property {number} code - 20104\n * @property {string} message - 'Access Token expired or expiration date invalid'\n */\n\nvar AccessTokenExpiredError = function (_TwilioError4) {\n _inherits(AccessTokenExpiredError, _TwilioError4);\n\n function AccessTokenExpiredError() {\n _classCallCheck(this, AccessTokenExpiredError);\n\n return _possibleConstructorReturn(this, (AccessTokenExpiredError.__proto__ || Object.getPrototypeOf(AccessTokenExpiredError)).call(this, 20104, 'Access Token expired or expiration date invalid'));\n }\n\n return AccessTokenExpiredError;\n}(TwilioError);\n\nexports.AccessTokenExpiredError = AccessTokenExpiredError;\nObject.defineProperty(TwilioErrorByCode, 20104, {\n value: AccessTokenExpiredError\n});\n/**\n * @class AccessTokenNotYetValidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room is not yet valid.\n * @extends TwilioError\n * @property {number} code - 20105\n * @property {string} message - 'Access Token not yet valid'\n */\n\nvar AccessTokenNotYetValidError = function (_TwilioError5) {\n _inherits(AccessTokenNotYetValidError, _TwilioError5);\n\n function AccessTokenNotYetValidError() {\n _classCallCheck(this, AccessTokenNotYetValidError);\n\n return _possibleConstructorReturn(this, (AccessTokenNotYetValidError.__proto__ || Object.getPrototypeOf(AccessTokenNotYetValidError)).call(this, 20105, 'Access Token not yet valid'));\n }\n\n return AccessTokenNotYetValidError;\n}(TwilioError);\n\nexports.AccessTokenNotYetValidError = AccessTokenNotYetValidError;\nObject.defineProperty(TwilioErrorByCode, 20105, {\n value: AccessTokenNotYetValidError\n});\n/**\n * @class AccessTokenGrantsInvalidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room has invalid grants.\n * @extends TwilioError\n * @property {number} code - 20106\n * @property {string} message - 'Invalid Access Token grants'\n */\n\nvar AccessTokenGrantsInvalidError = function (_TwilioError6) {\n _inherits(AccessTokenGrantsInvalidError, _TwilioError6);\n\n function AccessTokenGrantsInvalidError() {\n _classCallCheck(this, AccessTokenGrantsInvalidError);\n\n return _possibleConstructorReturn(this, (AccessTokenGrantsInvalidError.__proto__ || Object.getPrototypeOf(AccessTokenGrantsInvalidError)).call(this, 20106, 'Invalid Access Token grants'));\n }\n\n return AccessTokenGrantsInvalidError;\n}(TwilioError);\n\nexports.AccessTokenGrantsInvalidError = AccessTokenGrantsInvalidError;\nObject.defineProperty(TwilioErrorByCode, 20106, {\n value: AccessTokenGrantsInvalidError\n});\n/**\n * @class AccessTokenSignatureInvalidError\n * @classdesc Raised whenever the AccessToken used for connecting to a Room has an invalid signature.\n * @extends TwilioError\n * @property {number} code - 20107\n * @property {string} message - 'Invalid Access Token signature'\n */\n\nvar AccessTokenSignatureInvalidError = function (_TwilioError7) {\n _inherits(AccessTokenSignatureInvalidError, _TwilioError7);\n\n function AccessTokenSignatureInvalidError() {\n _classCallCheck(this, AccessTokenSignatureInvalidError);\n\n return _possibleConstructorReturn(this, (AccessTokenSignatureInvalidError.__proto__ || Object.getPrototypeOf(AccessTokenSignatureInvalidError)).call(this, 20107, 'Invalid Access Token signature'));\n }\n\n return AccessTokenSignatureInvalidError;\n}(TwilioError);\n\nexports.AccessTokenSignatureInvalidError = AccessTokenSignatureInvalidError;\nObject.defineProperty(TwilioErrorByCode, 20107, {\n value: AccessTokenSignatureInvalidError\n});\n/**\n * @class SignalingConnectionError\n * @classdesc Raised whenever a signaling connection error occurs that is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53000\n * @property {string} message - 'Signaling connection error'\n */\n\nvar SignalingConnectionError = function (_TwilioError8) {\n _inherits(SignalingConnectionError, _TwilioError8);\n\n function SignalingConnectionError() {\n _classCallCheck(this, SignalingConnectionError);\n\n return _possibleConstructorReturn(this, (SignalingConnectionError.__proto__ || Object.getPrototypeOf(SignalingConnectionError)).call(this, 53000, 'Signaling connection error'));\n }\n\n return SignalingConnectionError;\n}(TwilioError);\n\nexports.SignalingConnectionError = SignalingConnectionError;\nObject.defineProperty(TwilioErrorByCode, 53000, {\n value: SignalingConnectionError\n});\n/**\n * @class SignalingConnectionDisconnectedError\n * @classdesc Raised whenever the signaling connection is unexpectedly disconnected.\n * @extends TwilioError\n * @property {number} code - 53001\n * @property {string} message - 'Signaling connection disconnected'\n */\n\nvar SignalingConnectionDisconnectedError = function (_TwilioError9) {\n _inherits(SignalingConnectionDisconnectedError, _TwilioError9);\n\n function SignalingConnectionDisconnectedError() {\n _classCallCheck(this, SignalingConnectionDisconnectedError);\n\n return _possibleConstructorReturn(this, (SignalingConnectionDisconnectedError.__proto__ || Object.getPrototypeOf(SignalingConnectionDisconnectedError)).call(this, 53001, 'Signaling connection disconnected'));\n }\n\n return SignalingConnectionDisconnectedError;\n}(TwilioError);\n\nexports.SignalingConnectionDisconnectedError = SignalingConnectionDisconnectedError;\nObject.defineProperty(TwilioErrorByCode, 53001, {\n value: SignalingConnectionDisconnectedError\n});\n/**\n * @class SignalingConnectionTimeoutError\n * @classdesc Raised when connection liveliness checks fail, or when the signaling session expires.\n * @extends TwilioError\n * @property {number} code - 53002\n * @property {string} message - 'Signaling connection timed out'\n */\n\nvar SignalingConnectionTimeoutError = function (_TwilioError10) {\n _inherits(SignalingConnectionTimeoutError, _TwilioError10);\n\n function SignalingConnectionTimeoutError() {\n _classCallCheck(this, SignalingConnectionTimeoutError);\n\n return _possibleConstructorReturn(this, (SignalingConnectionTimeoutError.__proto__ || Object.getPrototypeOf(SignalingConnectionTimeoutError)).call(this, 53002, 'Signaling connection timed out'));\n }\n\n return SignalingConnectionTimeoutError;\n}(TwilioError);\n\nexports.SignalingConnectionTimeoutError = SignalingConnectionTimeoutError;\nObject.defineProperty(TwilioErrorByCode, 53002, {\n value: SignalingConnectionTimeoutError\n});\n/**\n * @class SignalingIncomingMessageInvalidError\n * @classdesc Raised whenever the Client receives a message from the Server that the Client cannot handle.\n * @extends TwilioError\n * @property {number} code - 53003\n * @property {string} message - 'Client received an invalid signaling message'\n */\n\nvar SignalingIncomingMessageInvalidError = function (_TwilioError11) {\n _inherits(SignalingIncomingMessageInvalidError, _TwilioError11);\n\n function SignalingIncomingMessageInvalidError() {\n _classCallCheck(this, SignalingIncomingMessageInvalidError);\n\n return _possibleConstructorReturn(this, (SignalingIncomingMessageInvalidError.__proto__ || Object.getPrototypeOf(SignalingIncomingMessageInvalidError)).call(this, 53003, 'Client received an invalid signaling message'));\n }\n\n return SignalingIncomingMessageInvalidError;\n}(TwilioError);\n\nexports.SignalingIncomingMessageInvalidError = SignalingIncomingMessageInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53003, {\n value: SignalingIncomingMessageInvalidError\n});\n/**\n * @class SignalingOutgoingMessageInvalidError\n * @classdesc Raised whenever the Client sends a message to the Server that the Server cannot handle.\n * @extends TwilioError\n * @property {number} code - 53004\n * @property {string} message - 'Client sent an invalid signaling message'\n */\n\nvar SignalingOutgoingMessageInvalidError = function (_TwilioError12) {\n _inherits(SignalingOutgoingMessageInvalidError, _TwilioError12);\n\n function SignalingOutgoingMessageInvalidError() {\n _classCallCheck(this, SignalingOutgoingMessageInvalidError);\n\n return _possibleConstructorReturn(this, (SignalingOutgoingMessageInvalidError.__proto__ || Object.getPrototypeOf(SignalingOutgoingMessageInvalidError)).call(this, 53004, 'Client sent an invalid signaling message'));\n }\n\n return SignalingOutgoingMessageInvalidError;\n}(TwilioError);\n\nexports.SignalingOutgoingMessageInvalidError = SignalingOutgoingMessageInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53004, {\n value: SignalingOutgoingMessageInvalidError\n});\n/**\n * @class RoomNameInvalidError\n * @classdesc Raised whenever a Room name is invalid, and the scenario is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53100\n * @property {string} message - 'Room name is invalid'\n */\n\nvar RoomNameInvalidError = function (_TwilioError13) {\n _inherits(RoomNameInvalidError, _TwilioError13);\n\n function RoomNameInvalidError() {\n _classCallCheck(this, RoomNameInvalidError);\n\n return _possibleConstructorReturn(this, (RoomNameInvalidError.__proto__ || Object.getPrototypeOf(RoomNameInvalidError)).call(this, 53100, 'Room name is invalid'));\n }\n\n return RoomNameInvalidError;\n}(TwilioError);\n\nexports.RoomNameInvalidError = RoomNameInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53100, {\n value: RoomNameInvalidError\n});\n/**\n * @class RoomNameTooLongError\n * @classdesc Raised whenever a Room name is too long.\n * @extends TwilioError\n * @property {number} code - 53101\n * @property {string} message - 'Room name is too long'\n */\n\nvar RoomNameTooLongError = function (_TwilioError14) {\n _inherits(RoomNameTooLongError, _TwilioError14);\n\n function RoomNameTooLongError() {\n _classCallCheck(this, RoomNameTooLongError);\n\n return _possibleConstructorReturn(this, (RoomNameTooLongError.__proto__ || Object.getPrototypeOf(RoomNameTooLongError)).call(this, 53101, 'Room name is too long'));\n }\n\n return RoomNameTooLongError;\n}(TwilioError);\n\nexports.RoomNameTooLongError = RoomNameTooLongError;\nObject.defineProperty(TwilioErrorByCode, 53101, {\n value: RoomNameTooLongError\n});\n/**\n * @class RoomNameCharsInvalidError\n * @classdesc Raised whenever a Room name contains invalid characters.\n * @extends TwilioError\n * @property {number} code - 53102\n * @property {string} message - 'Room name contains invalid characters'\n */\n\nvar RoomNameCharsInvalidError = function (_TwilioError15) {\n _inherits(RoomNameCharsInvalidError, _TwilioError15);\n\n function RoomNameCharsInvalidError() {\n _classCallCheck(this, RoomNameCharsInvalidError);\n\n return _possibleConstructorReturn(this, (RoomNameCharsInvalidError.__proto__ || Object.getPrototypeOf(RoomNameCharsInvalidError)).call(this, 53102, 'Room name contains invalid characters'));\n }\n\n return RoomNameCharsInvalidError;\n}(TwilioError);\n\nexports.RoomNameCharsInvalidError = RoomNameCharsInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53102, {\n value: RoomNameCharsInvalidError\n});\n/**\n * @class RoomCreateFailedError\n * @classdesc Raised whenever the Server is unable to create a Room.\n * @extends TwilioError\n * @property {number} code - 53103\n * @property {string} message - 'Unable to create Room'\n */\n\nvar RoomCreateFailedError = function (_TwilioError16) {\n _inherits(RoomCreateFailedError, _TwilioError16);\n\n function RoomCreateFailedError() {\n _classCallCheck(this, RoomCreateFailedError);\n\n return _possibleConstructorReturn(this, (RoomCreateFailedError.__proto__ || Object.getPrototypeOf(RoomCreateFailedError)).call(this, 53103, 'Unable to create Room'));\n }\n\n return RoomCreateFailedError;\n}(TwilioError);\n\nexports.RoomCreateFailedError = RoomCreateFailedError;\nObject.defineProperty(TwilioErrorByCode, 53103, {\n value: RoomCreateFailedError\n});\n/**\n * @class RoomConnectFailedError\n * @classdesc Raised whenever a Client is unable to connect to a Room, and the scenario is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53104\n * @property {string} message - 'Unable to connect to Room'\n */\n\nvar RoomConnectFailedError = function (_TwilioError17) {\n _inherits(RoomConnectFailedError, _TwilioError17);\n\n function RoomConnectFailedError() {\n _classCallCheck(this, RoomConnectFailedError);\n\n return _possibleConstructorReturn(this, (RoomConnectFailedError.__proto__ || Object.getPrototypeOf(RoomConnectFailedError)).call(this, 53104, 'Unable to connect to Room'));\n }\n\n return RoomConnectFailedError;\n}(TwilioError);\n\nexports.RoomConnectFailedError = RoomConnectFailedError;\nObject.defineProperty(TwilioErrorByCode, 53104, {\n value: RoomConnectFailedError\n});\n/**\n * @class RoomMaxParticipantsExceededError\n * @classdesc Raised whenever a Client is unable to connect to a Room because the Room contains too many Participants.\n * @extends TwilioError\n * @property {number} code - 53105\n * @property {string} message - 'Room contains too many Participants'\n */\n\nvar RoomMaxParticipantsExceededError = function (_TwilioError18) {\n _inherits(RoomMaxParticipantsExceededError, _TwilioError18);\n\n function RoomMaxParticipantsExceededError() {\n _classCallCheck(this, RoomMaxParticipantsExceededError);\n\n return _possibleConstructorReturn(this, (RoomMaxParticipantsExceededError.__proto__ || Object.getPrototypeOf(RoomMaxParticipantsExceededError)).call(this, 53105, 'Room contains too many Participants'));\n }\n\n return RoomMaxParticipantsExceededError;\n}(TwilioError);\n\nexports.RoomMaxParticipantsExceededError = RoomMaxParticipantsExceededError;\nObject.defineProperty(TwilioErrorByCode, 53105, {\n value: RoomMaxParticipantsExceededError\n});\n/**\n * @class RoomNotFoundError\n * @classdesc Raised whenever attempting operation on a non-existent Room.\n * @extends TwilioError\n * @property {number} code - 53106\n * @property {string} message - 'Room not found'\n */\n\nvar RoomNotFoundError = function (_TwilioError19) {\n _inherits(RoomNotFoundError, _TwilioError19);\n\n function RoomNotFoundError() {\n _classCallCheck(this, RoomNotFoundError);\n\n return _possibleConstructorReturn(this, (RoomNotFoundError.__proto__ || Object.getPrototypeOf(RoomNotFoundError)).call(this, 53106, 'Room not found'));\n }\n\n return RoomNotFoundError;\n}(TwilioError);\n\nexports.RoomNotFoundError = RoomNotFoundError;\nObject.defineProperty(TwilioErrorByCode, 53106, {\n value: RoomNotFoundError\n});\n/**\n * @class RoomMaxParticipantsOutOfRangeError\n * @classdesc Raised in the REST API when MaxParticipants is set out of range.\n * @extends TwilioError\n * @property {number} code - 53107\n * @property {string} message - 'MaxParticipants is out of range'\n */\n\nvar RoomMaxParticipantsOutOfRangeError = function (_TwilioError20) {\n _inherits(RoomMaxParticipantsOutOfRangeError, _TwilioError20);\n\n function RoomMaxParticipantsOutOfRangeError() {\n _classCallCheck(this, RoomMaxParticipantsOutOfRangeError);\n\n return _possibleConstructorReturn(this, (RoomMaxParticipantsOutOfRangeError.__proto__ || Object.getPrototypeOf(RoomMaxParticipantsOutOfRangeError)).call(this, 53107, 'MaxParticipants is out of range'));\n }\n\n return RoomMaxParticipantsOutOfRangeError;\n}(TwilioError);\n\nexports.RoomMaxParticipantsOutOfRangeError = RoomMaxParticipantsOutOfRangeError;\nObject.defineProperty(TwilioErrorByCode, 53107, {\n value: RoomMaxParticipantsOutOfRangeError\n});\n/**\n * @class RoomTypeInvalidError\n * @classdesc Raised in the REST API when the user attempts to create a Room with an invalid RoomType\n * @extends TwilioError\n * @property {number} code - 53108\n * @property {string} message - 'RoomType is not valid'\n */\n\nvar RoomTypeInvalidError = function (_TwilioError21) {\n _inherits(RoomTypeInvalidError, _TwilioError21);\n\n function RoomTypeInvalidError() {\n _classCallCheck(this, RoomTypeInvalidError);\n\n return _possibleConstructorReturn(this, (RoomTypeInvalidError.__proto__ || Object.getPrototypeOf(RoomTypeInvalidError)).call(this, 53108, 'RoomType is not valid'));\n }\n\n return RoomTypeInvalidError;\n}(TwilioError);\n\nexports.RoomTypeInvalidError = RoomTypeInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53108, {\n value: RoomTypeInvalidError\n});\n/**\n * @class RoomTimeoutOutOfRangeError\n * @classdesc Raised in the REST API when Timeout is set out of range.\n * @extends TwilioError\n * @property {number} code - 53109\n * @property {string} message - 'Timeout is out of range'\n */\n\nvar RoomTimeoutOutOfRangeError = function (_TwilioError22) {\n _inherits(RoomTimeoutOutOfRangeError, _TwilioError22);\n\n function RoomTimeoutOutOfRangeError() {\n _classCallCheck(this, RoomTimeoutOutOfRangeError);\n\n return _possibleConstructorReturn(this, (RoomTimeoutOutOfRangeError.__proto__ || Object.getPrototypeOf(RoomTimeoutOutOfRangeError)).call(this, 53109, 'Timeout is out of range'));\n }\n\n return RoomTimeoutOutOfRangeError;\n}(TwilioError);\n\nexports.RoomTimeoutOutOfRangeError = RoomTimeoutOutOfRangeError;\nObject.defineProperty(TwilioErrorByCode, 53109, {\n value: RoomTimeoutOutOfRangeError\n});\n/**\n * @class RoomStatusCallbackMethodInvalidError\n * @classdesc Raised in the REST API when StatusCallbackMethod is set to an invalid value.\n * @extends TwilioError\n * @property {number} code - 53110\n * @property {string} message - 'StatusCallbackMethod is invalid'\n */\n\nvar RoomStatusCallbackMethodInvalidError = function (_TwilioError23) {\n _inherits(RoomStatusCallbackMethodInvalidError, _TwilioError23);\n\n function RoomStatusCallbackMethodInvalidError() {\n _classCallCheck(this, RoomStatusCallbackMethodInvalidError);\n\n return _possibleConstructorReturn(this, (RoomStatusCallbackMethodInvalidError.__proto__ || Object.getPrototypeOf(RoomStatusCallbackMethodInvalidError)).call(this, 53110, 'StatusCallbackMethod is invalid'));\n }\n\n return RoomStatusCallbackMethodInvalidError;\n}(TwilioError);\n\nexports.RoomStatusCallbackMethodInvalidError = RoomStatusCallbackMethodInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53110, {\n value: RoomStatusCallbackMethodInvalidError\n});\n/**\n * @class RoomStatusCallbackInvalidError\n * @classdesc Raised in the REST API when StatusCallback is not a valid URL or the url is too long.\n * @extends TwilioError\n * @property {number} code - 53111\n * @property {string} message - 'StatusCallback is invalid'\n */\n\nvar RoomStatusCallbackInvalidError = function (_TwilioError24) {\n _inherits(RoomStatusCallbackInvalidError, _TwilioError24);\n\n function RoomStatusCallbackInvalidError() {\n _classCallCheck(this, RoomStatusCallbackInvalidError);\n\n return _possibleConstructorReturn(this, (RoomStatusCallbackInvalidError.__proto__ || Object.getPrototypeOf(RoomStatusCallbackInvalidError)).call(this, 53111, 'StatusCallback is invalid'));\n }\n\n return RoomStatusCallbackInvalidError;\n}(TwilioError);\n\nexports.RoomStatusCallbackInvalidError = RoomStatusCallbackInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53111, {\n value: RoomStatusCallbackInvalidError\n});\n/**\n * @class RoomStatusInvalidError\n * @classdesc Raised in the REST API when Status is not valid or the Room is not in-progress.\n * @extends TwilioError\n * @property {number} code - 53112\n * @property {string} message - 'Status is invalid'\n */\n\nvar RoomStatusInvalidError = function (_TwilioError25) {\n _inherits(RoomStatusInvalidError, _TwilioError25);\n\n function RoomStatusInvalidError() {\n _classCallCheck(this, RoomStatusInvalidError);\n\n return _possibleConstructorReturn(this, (RoomStatusInvalidError.__proto__ || Object.getPrototypeOf(RoomStatusInvalidError)).call(this, 53112, 'Status is invalid'));\n }\n\n return RoomStatusInvalidError;\n}(TwilioError);\n\nexports.RoomStatusInvalidError = RoomStatusInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53112, {\n value: RoomStatusInvalidError\n});\n/**\n * @class RoomRoomExistsError\n * @classdesc Raised in the REST API when the Room creation fails because a Room exists with the same name.\n * @extends TwilioError\n * @property {number} code - 53113\n * @property {string} message - 'Room exists'\n */\n\nvar RoomRoomExistsError = function (_TwilioError26) {\n _inherits(RoomRoomExistsError, _TwilioError26);\n\n function RoomRoomExistsError() {\n _classCallCheck(this, RoomRoomExistsError);\n\n return _possibleConstructorReturn(this, (RoomRoomExistsError.__proto__ || Object.getPrototypeOf(RoomRoomExistsError)).call(this, 53113, 'Room exists'));\n }\n\n return RoomRoomExistsError;\n}(TwilioError);\n\nexports.RoomRoomExistsError = RoomRoomExistsError;\nObject.defineProperty(TwilioErrorByCode, 53113, {\n value: RoomRoomExistsError\n});\n/**\n * @class RoomInvalidParametersError\n * @classdesc Raised in the REST API when one or more Room creation parameter is incompatible with the Room type.\n * @extends TwilioError\n * @property {number} code - 53114\n * @property {string} message - 'Room creation parameter(s) incompatible with the Room type'\n */\n\nvar RoomInvalidParametersError = function (_TwilioError27) {\n _inherits(RoomInvalidParametersError, _TwilioError27);\n\n function RoomInvalidParametersError() {\n _classCallCheck(this, RoomInvalidParametersError);\n\n return _possibleConstructorReturn(this, (RoomInvalidParametersError.__proto__ || Object.getPrototypeOf(RoomInvalidParametersError)).call(this, 53114, 'Room creation parameter(s) incompatible with the Room type'));\n }\n\n return RoomInvalidParametersError;\n}(TwilioError);\n\nexports.RoomInvalidParametersError = RoomInvalidParametersError;\nObject.defineProperty(TwilioErrorByCode, 53114, {\n value: RoomInvalidParametersError\n});\n/**\n * @class RoomMediaRegionInvalidError\n * @classdesc Raised in the REST API when MediaRegion is set to an invalid value.\n * @extends TwilioError\n * @property {number} code - 53115\n * @property {string} message - 'MediaRegion is invalid'\n */\n\nvar RoomMediaRegionInvalidError = function (_TwilioError28) {\n _inherits(RoomMediaRegionInvalidError, _TwilioError28);\n\n function RoomMediaRegionInvalidError() {\n _classCallCheck(this, RoomMediaRegionInvalidError);\n\n return _possibleConstructorReturn(this, (RoomMediaRegionInvalidError.__proto__ || Object.getPrototypeOf(RoomMediaRegionInvalidError)).call(this, 53115, 'MediaRegion is invalid'));\n }\n\n return RoomMediaRegionInvalidError;\n}(TwilioError);\n\nexports.RoomMediaRegionInvalidError = RoomMediaRegionInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53115, {\n value: RoomMediaRegionInvalidError\n});\n/**\n * @class RoomMediaRegionUnavailableError\n * @classdesc Raised in the REST API when MediaRegion is set to a valid value but no media servers are available.\n * @extends TwilioError\n * @property {number} code - 53116\n * @property {string} message - 'There are no media servers available in the MediaRegion'\n */\n\nvar RoomMediaRegionUnavailableError = function (_TwilioError29) {\n _inherits(RoomMediaRegionUnavailableError, _TwilioError29);\n\n function RoomMediaRegionUnavailableError() {\n _classCallCheck(this, RoomMediaRegionUnavailableError);\n\n return _possibleConstructorReturn(this, (RoomMediaRegionUnavailableError.__proto__ || Object.getPrototypeOf(RoomMediaRegionUnavailableError)).call(this, 53116, 'There are no media servers available in the MediaRegion'));\n }\n\n return RoomMediaRegionUnavailableError;\n}(TwilioError);\n\nexports.RoomMediaRegionUnavailableError = RoomMediaRegionUnavailableError;\nObject.defineProperty(TwilioErrorByCode, 53116, {\n value: RoomMediaRegionUnavailableError\n});\n/**\n * @class RoomSubscriptionOperationNotSupportedError\n * @classdesc Raised whenever the subscription operation requested is not supported for the Room type.\n * @extends TwilioError\n * @property {number} code - 53117\n * @property {string} message - 'The subscription operation requested is not supported for the Room type'\n */\n\nvar RoomSubscriptionOperationNotSupportedError = function (_TwilioError30) {\n _inherits(RoomSubscriptionOperationNotSupportedError, _TwilioError30);\n\n function RoomSubscriptionOperationNotSupportedError() {\n _classCallCheck(this, RoomSubscriptionOperationNotSupportedError);\n\n return _possibleConstructorReturn(this, (RoomSubscriptionOperationNotSupportedError.__proto__ || Object.getPrototypeOf(RoomSubscriptionOperationNotSupportedError)).call(this, 53117, 'The subscription operation requested is not supported for the Room type'));\n }\n\n return RoomSubscriptionOperationNotSupportedError;\n}(TwilioError);\n\nexports.RoomSubscriptionOperationNotSupportedError = RoomSubscriptionOperationNotSupportedError;\nObject.defineProperty(TwilioErrorByCode, 53117, {\n value: RoomSubscriptionOperationNotSupportedError\n});\n/**\n * @class RoomCompletedError\n * @classdesc Raised whenever a Room is completed via the REST API.\n * @extends TwilioError\n * @property {number} code - 53118\n * @property {string} message - 'Room completed'\n */\n\nvar RoomCompletedError = function (_TwilioError31) {\n _inherits(RoomCompletedError, _TwilioError31);\n\n function RoomCompletedError() {\n _classCallCheck(this, RoomCompletedError);\n\n return _possibleConstructorReturn(this, (RoomCompletedError.__proto__ || Object.getPrototypeOf(RoomCompletedError)).call(this, 53118, 'Room completed'));\n }\n\n return RoomCompletedError;\n}(TwilioError);\n\nexports.RoomCompletedError = RoomCompletedError;\nObject.defineProperty(TwilioErrorByCode, 53118, {\n value: RoomCompletedError\n});\n/**\n * @class ParticipantIdentityInvalidError\n * @classdesc Raised whenever a Participant identity is invalid, and the scenario is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53200\n * @property {string} message - 'Participant identity is invalid'\n */\n\nvar ParticipantIdentityInvalidError = function (_TwilioError32) {\n _inherits(ParticipantIdentityInvalidError, _TwilioError32);\n\n function ParticipantIdentityInvalidError() {\n _classCallCheck(this, ParticipantIdentityInvalidError);\n\n return _possibleConstructorReturn(this, (ParticipantIdentityInvalidError.__proto__ || Object.getPrototypeOf(ParticipantIdentityInvalidError)).call(this, 53200, 'Participant identity is invalid'));\n }\n\n return ParticipantIdentityInvalidError;\n}(TwilioError);\n\nexports.ParticipantIdentityInvalidError = ParticipantIdentityInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53200, {\n value: ParticipantIdentityInvalidError\n});\n/**\n * @class ParticipantIdentityTooLongError\n * @classdesc Raised whenever a Participant identity is too long.\n * @extends TwilioError\n * @property {number} code - 53201\n * @property {string} message - 'Participant identity is too long'\n */\n\nvar ParticipantIdentityTooLongError = function (_TwilioError33) {\n _inherits(ParticipantIdentityTooLongError, _TwilioError33);\n\n function ParticipantIdentityTooLongError() {\n _classCallCheck(this, ParticipantIdentityTooLongError);\n\n return _possibleConstructorReturn(this, (ParticipantIdentityTooLongError.__proto__ || Object.getPrototypeOf(ParticipantIdentityTooLongError)).call(this, 53201, 'Participant identity is too long'));\n }\n\n return ParticipantIdentityTooLongError;\n}(TwilioError);\n\nexports.ParticipantIdentityTooLongError = ParticipantIdentityTooLongError;\nObject.defineProperty(TwilioErrorByCode, 53201, {\n value: ParticipantIdentityTooLongError\n});\n/**\n * @class ParticipantIdentityCharsInvalidError\n * @classdesc Raised whenever a Participant identity contains invalid characters.\n * @extends TwilioError\n * @property {number} code - 53202\n * @property {string} message - 'Participant identity contains invalid characters'\n */\n\nvar ParticipantIdentityCharsInvalidError = function (_TwilioError34) {\n _inherits(ParticipantIdentityCharsInvalidError, _TwilioError34);\n\n function ParticipantIdentityCharsInvalidError() {\n _classCallCheck(this, ParticipantIdentityCharsInvalidError);\n\n return _possibleConstructorReturn(this, (ParticipantIdentityCharsInvalidError.__proto__ || Object.getPrototypeOf(ParticipantIdentityCharsInvalidError)).call(this, 53202, 'Participant identity contains invalid characters'));\n }\n\n return ParticipantIdentityCharsInvalidError;\n}(TwilioError);\n\nexports.ParticipantIdentityCharsInvalidError = ParticipantIdentityCharsInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53202, {\n value: ParticipantIdentityCharsInvalidError\n});\n/**\n * @class ParticipantMaxTracksExceededError\n * @classdesc Raised whenever a Participant has too many Tracks.\n * @extends TwilioError\n * @property {number} code - 53203\n * @property {string} message - 'Participant has too many Tracks'\n */\n\nvar ParticipantMaxTracksExceededError = function (_TwilioError35) {\n _inherits(ParticipantMaxTracksExceededError, _TwilioError35);\n\n function ParticipantMaxTracksExceededError() {\n _classCallCheck(this, ParticipantMaxTracksExceededError);\n\n return _possibleConstructorReturn(this, (ParticipantMaxTracksExceededError.__proto__ || Object.getPrototypeOf(ParticipantMaxTracksExceededError)).call(this, 53203, 'Participant has too many Tracks'));\n }\n\n return ParticipantMaxTracksExceededError;\n}(TwilioError);\n\nexports.ParticipantMaxTracksExceededError = ParticipantMaxTracksExceededError;\nObject.defineProperty(TwilioErrorByCode, 53203, {\n value: ParticipantMaxTracksExceededError\n});\n/**\n * @class ParticipantNotFoundError\n * @classdesc Raised whenever attempting an operation on a non-existent Participant.\n * @extends TwilioError\n * @property {number} code - 53204\n * @property {string} message - 'Participant not found'\n */\n\nvar ParticipantNotFoundError = function (_TwilioError36) {\n _inherits(ParticipantNotFoundError, _TwilioError36);\n\n function ParticipantNotFoundError() {\n _classCallCheck(this, ParticipantNotFoundError);\n\n return _possibleConstructorReturn(this, (ParticipantNotFoundError.__proto__ || Object.getPrototypeOf(ParticipantNotFoundError)).call(this, 53204, 'Participant not found'));\n }\n\n return ParticipantNotFoundError;\n}(TwilioError);\n\nexports.ParticipantNotFoundError = ParticipantNotFoundError;\nObject.defineProperty(TwilioErrorByCode, 53204, {\n value: ParticipantNotFoundError\n});\n/**\n * @class ParticipantDuplicateIdentityError\n * @classdesc Raised by the server to the existing Participant when a new Participant joins a Room with the same identity as the existing Participant.\n * @extends TwilioError\n * @property {number} code - 53205\n * @property {string} message - 'Participant disconnected because of duplicate identity'\n */\n\nvar ParticipantDuplicateIdentityError = function (_TwilioError37) {\n _inherits(ParticipantDuplicateIdentityError, _TwilioError37);\n\n function ParticipantDuplicateIdentityError() {\n _classCallCheck(this, ParticipantDuplicateIdentityError);\n\n return _possibleConstructorReturn(this, (ParticipantDuplicateIdentityError.__proto__ || Object.getPrototypeOf(ParticipantDuplicateIdentityError)).call(this, 53205, 'Participant disconnected because of duplicate identity'));\n }\n\n return ParticipantDuplicateIdentityError;\n}(TwilioError);\n\nexports.ParticipantDuplicateIdentityError = ParticipantDuplicateIdentityError;\nObject.defineProperty(TwilioErrorByCode, 53205, {\n value: ParticipantDuplicateIdentityError\n});\n/**\n * @class TrackInvalidError\n * @classdesc Raised whenever a Track is invalid, and the scenario is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53300\n * @property {string} message - 'Track is invalid'\n */\n\nvar TrackInvalidError = function (_TwilioError38) {\n _inherits(TrackInvalidError, _TwilioError38);\n\n function TrackInvalidError() {\n _classCallCheck(this, TrackInvalidError);\n\n return _possibleConstructorReturn(this, (TrackInvalidError.__proto__ || Object.getPrototypeOf(TrackInvalidError)).call(this, 53300, 'Track is invalid'));\n }\n\n return TrackInvalidError;\n}(TwilioError);\n\nexports.TrackInvalidError = TrackInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53300, {\n value: TrackInvalidError\n});\n/**\n * @class TrackNameInvalidError\n * @classdesc Raised whenever a Track name is invalid, and the scenario is not covered by a more specific error code.\n * @extends TwilioError\n * @property {number} code - 53301\n * @property {string} message - 'Track name is invalid'\n */\n\nvar TrackNameInvalidError = function (_TwilioError39) {\n _inherits(TrackNameInvalidError, _TwilioError39);\n\n function TrackNameInvalidError() {\n _classCallCheck(this, TrackNameInvalidError);\n\n return _possibleConstructorReturn(this, (TrackNameInvalidError.__proto__ || Object.getPrototypeOf(TrackNameInvalidError)).call(this, 53301, 'Track name is invalid'));\n }\n\n return TrackNameInvalidError;\n}(TwilioError);\n\nexports.TrackNameInvalidError = TrackNameInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53301, {\n value: TrackNameInvalidError\n});\n/**\n * @class TrackNameTooLongError\n * @classdesc Raised whenever a Track name is too long.\n * @extends TwilioError\n * @property {number} code - 53302\n * @property {string} message - 'Track name is too long'\n */\n\nvar TrackNameTooLongError = function (_TwilioError40) {\n _inherits(TrackNameTooLongError, _TwilioError40);\n\n function TrackNameTooLongError() {\n _classCallCheck(this, TrackNameTooLongError);\n\n return _possibleConstructorReturn(this, (TrackNameTooLongError.__proto__ || Object.getPrototypeOf(TrackNameTooLongError)).call(this, 53302, 'Track name is too long'));\n }\n\n return TrackNameTooLongError;\n}(TwilioError);\n\nexports.TrackNameTooLongError = TrackNameTooLongError;\nObject.defineProperty(TwilioErrorByCode, 53302, {\n value: TrackNameTooLongError\n});\n/**\n * @class TrackNameCharsInvalidError\n * @classdesc Raised whenever a Track name contains invalid characters.\n * @extends TwilioError\n * @property {number} code - 53303\n * @property {string} message - 'Track name contains invalid characters'\n */\n\nvar TrackNameCharsInvalidError = function (_TwilioError41) {\n _inherits(TrackNameCharsInvalidError, _TwilioError41);\n\n function TrackNameCharsInvalidError() {\n _classCallCheck(this, TrackNameCharsInvalidError);\n\n return _possibleConstructorReturn(this, (TrackNameCharsInvalidError.__proto__ || Object.getPrototypeOf(TrackNameCharsInvalidError)).call(this, 53303, 'Track name contains invalid characters'));\n }\n\n return TrackNameCharsInvalidError;\n}(TwilioError);\n\nexports.TrackNameCharsInvalidError = TrackNameCharsInvalidError;\nObject.defineProperty(TwilioErrorByCode, 53303, {\n value: TrackNameCharsInvalidError\n});\n/**\n * @class TrackNameIsDuplicatedError\n * @classdesc Raised whenever a Participant is currently publishing a Track with the same name.\n * @extends TwilioError\n * @property {number} code - 53304\n * @property {string} message - 'Track name is duplicated'\n */\n\nvar TrackNameIsDuplicatedError = function (_TwilioError42) {\n _inherits(TrackNameIsDuplicatedError, _TwilioError42);\n\n function TrackNameIsDuplicatedError() {\n _classCallCheck(this, TrackNameIsDuplicatedError);\n\n return _possibleConstructorReturn(this, (TrackNameIsDuplicatedError.__proto__ || Object.getPrototypeOf(TrackNameIsDuplicatedError)).call(this, 53304, 'Track name is duplicated'));\n }\n\n return TrackNameIsDuplicatedError;\n}(TwilioError);\n\nexports.TrackNameIsDuplicatedError = TrackNameIsDuplicatedError;\nObject.defineProperty(TwilioErrorByCode, 53304, {\n value: TrackNameIsDuplicatedError\n});\n/**\n * @class TrackServerTrackCapacityReachedError\n * @classdesc The server does not have enough resources available to create a new Track.\n * @extends TwilioError\n * @property {number} code - 53305\n * @property {string} message - 'The server has reached capacity and cannot fulfill this request'\n */\n\nvar TrackServerTrackCapacityReachedError = function (_TwilioError43) {\n _inherits(TrackServerTrackCapacityReachedError, _TwilioError43);\n\n function TrackServerTrackCapacityReachedError() {\n _classCallCheck(this, TrackServerTrackCapacityReachedError);\n\n return _possibleConstructorReturn(this, (TrackServerTrackCapacityReachedError.__proto__ || Object.getPrototypeOf(TrackServerTrackCapacityReachedError)).call(this, 53305, 'The server has reached capacity and cannot fulfill this request'));\n }\n\n return TrackServerTrackCapacityReachedError;\n}(TwilioError);\n\nexports.TrackServerTrackCapacityReachedError = TrackServerTrackCapacityReachedError;\nObject.defineProperty(TwilioErrorByCode, 53305, {\n value: TrackServerTrackCapacityReachedError\n});\n/**\n * @class MediaClientLocalDescFailedError\n * @classdesc Raised whenever a Client is unable to create or apply a local media description.\n * @extends TwilioError\n * @property {number} code - 53400\n * @property {string} message - 'Client is unable to create or apply a local media description'\n */\n\nvar MediaClientLocalDescFailedError = function (_TwilioError44) {\n _inherits(MediaClientLocalDescFailedError, _TwilioError44);\n\n function MediaClientLocalDescFailedError() {\n _classCallCheck(this, MediaClientLocalDescFailedError);\n\n return _possibleConstructorReturn(this, (MediaClientLocalDescFailedError.__proto__ || Object.getPrototypeOf(MediaClientLocalDescFailedError)).call(this, 53400, 'Client is unable to create or apply a local media description'));\n }\n\n return MediaClientLocalDescFailedError;\n}(TwilioError);\n\nexports.MediaClientLocalDescFailedError = MediaClientLocalDescFailedError;\nObject.defineProperty(TwilioErrorByCode, 53400, {\n value: MediaClientLocalDescFailedError\n});\n/**\n * @class MediaServerLocalDescFailedError\n * @classdesc Raised whenever the Server is unable to create or apply a local media description.\n * @extends TwilioError\n * @property {number} code - 53401\n * @property {string} message - 'Server is unable to create or apply a local media description'\n */\n\nvar MediaServerLocalDescFailedError = function (_TwilioError45) {\n _inherits(MediaServerLocalDescFailedError, _TwilioError45);\n\n function MediaServerLocalDescFailedError() {\n _classCallCheck(this, MediaServerLocalDescFailedError);\n\n return _possibleConstructorReturn(this, (MediaServerLocalDescFailedError.__proto__ || Object.getPrototypeOf(MediaServerLocalDescFailedError)).call(this, 53401, 'Server is unable to create or apply a local media description'));\n }\n\n return MediaServerLocalDescFailedError;\n}(TwilioError);\n\nexports.MediaServerLocalDescFailedError = MediaServerLocalDescFailedError;\nObject.defineProperty(TwilioErrorByCode, 53401, {\n value: MediaServerLocalDescFailedError\n});\n/**\n * @class MediaClientRemoteDescFailedError\n * @classdesc Raised whenever the Client receives a remote media description but is unable to apply it.\n * @extends TwilioError\n * @property {number} code - 53402\n * @property {string} message - 'Client is unable to apply a remote media description'\n */\n\nvar MediaClientRemoteDescFailedError = function (_TwilioError46) {\n _inherits(MediaClientRemoteDescFailedError, _TwilioError46);\n\n function MediaClientRemoteDescFailedError() {\n _classCallCheck(this, MediaClientRemoteDescFailedError);\n\n return _possibleConstructorReturn(this, (MediaClientRemoteDescFailedError.__proto__ || Object.getPrototypeOf(MediaClientRemoteDescFailedError)).call(this, 53402, 'Client is unable to apply a remote media description'));\n }\n\n return MediaClientRemoteDescFailedError;\n}(TwilioError);\n\nexports.MediaClientRemoteDescFailedError = MediaClientRemoteDescFailedError;\nObject.defineProperty(TwilioErrorByCode, 53402, {\n value: MediaClientRemoteDescFailedError\n});\n/**\n * @class MediaServerRemoteDescFailedError\n * @classdesc Raised whenever the Server receives a remote media description but is unable to apply it.\n * @extends TwilioError\n * @property {number} code - 53403\n * @property {string} message - 'Server is unable to apply a remote media description'\n */\n\nvar MediaServerRemoteDescFailedError = function (_TwilioError47) {\n _inherits(MediaServerRemoteDescFailedError, _TwilioError47);\n\n function MediaServerRemoteDescFailedError() {\n _classCallCheck(this, MediaServerRemoteDescFailedError);\n\n return _possibleConstructorReturn(this, (MediaServerRemoteDescFailedError.__proto__ || Object.getPrototypeOf(MediaServerRemoteDescFailedError)).call(this, 53403, 'Server is unable to apply a remote media description'));\n }\n\n return MediaServerRemoteDescFailedError;\n}(TwilioError);\n\nexports.MediaServerRemoteDescFailedError = MediaServerRemoteDescFailedError;\nObject.defineProperty(TwilioErrorByCode, 53403, {\n value: MediaServerRemoteDescFailedError\n});\n/**\n * @class MediaNoSupportedCodecError\n * @classdesc Raised whenever the intersection of codecs supported by the Client and the Server (or, in peer-to-peer, the Client and another Participant) is empty.\n * @extends TwilioError\n * @property {number} code - 53404\n * @property {string} message - 'No supported codec'\n */\n\nvar MediaNoSupportedCodecError = function (_TwilioError48) {\n _inherits(MediaNoSupportedCodecError, _TwilioError48);\n\n function MediaNoSupportedCodecError() {\n _classCallCheck(this, MediaNoSupportedCodecError);\n\n return _possibleConstructorReturn(this, (MediaNoSupportedCodecError.__proto__ || Object.getPrototypeOf(MediaNoSupportedCodecError)).call(this, 53404, 'No supported codec'));\n }\n\n return MediaNoSupportedCodecError;\n}(TwilioError);\n\nexports.MediaNoSupportedCodecError = MediaNoSupportedCodecError;\nObject.defineProperty(TwilioErrorByCode, 53404, {\n value: MediaNoSupportedCodecError\n});\n/**\n * @class MediaConnectionError\n * @classdesc Raised by the Client or Server whenever a media connection fails or raised by the Client whenever it detects that media has stopped flowing.\n * @extends TwilioError\n * @property {number} code - 53405\n * @property {string} message - 'Media connection failed or Media activity ceased'\n */\n\nvar MediaConnectionError = function (_TwilioError49) {\n _inherits(MediaConnectionError, _TwilioError49);\n\n function MediaConnectionError() {\n _classCallCheck(this, MediaConnectionError);\n\n return _possibleConstructorReturn(this, (MediaConnectionError.__proto__ || Object.getPrototypeOf(MediaConnectionError)).call(this, 53405, 'Media connection failed or Media activity ceased'));\n }\n\n return MediaConnectionError;\n}(TwilioError);\n\nexports.MediaConnectionError = MediaConnectionError;\nObject.defineProperty(TwilioErrorByCode, 53405, {\n value: MediaConnectionError\n});\n/**\n * @class MediaDTLSTransportFailedError\n * @classdesc There was a problem while negotiating with the remote DTLS peer. Therefore the Participant will not be able to publish or subscribe to Tracks.\n * @extends TwilioError\n * @property {number} code - 53407\n * @property {string} message - 'Media connection failed due to DTLS handshake failure'\n */\n\nvar MediaDTLSTransportFailedError = function (_TwilioError50) {\n _inherits(MediaDTLSTransportFailedError, _TwilioError50);\n\n function MediaDTLSTransportFailedError() {\n _classCallCheck(this, MediaDTLSTransportFailedError);\n\n return _possibleConstructorReturn(this, (MediaDTLSTransportFailedError.__proto__ || Object.getPrototypeOf(MediaDTLSTransportFailedError)).call(this, 53407, 'Media connection failed due to DTLS handshake failure'));\n }\n\n return MediaDTLSTransportFailedError;\n}(TwilioError);\n\nexports.MediaDTLSTransportFailedError = MediaDTLSTransportFailedError;\nObject.defineProperty(TwilioErrorByCode, 53407, {\n value: MediaDTLSTransportFailedError\n});\n/**\n * @class ConfigurationAcquireFailedError\n * @classdesc Raised whenever the Client is unable to acquire configuration information from the Server.\n * @extends TwilioError\n * @property {number} code - 53500\n * @property {string} message - 'Unable to acquire configuration'\n */\n\nvar ConfigurationAcquireFailedError = function (_TwilioError51) {\n _inherits(ConfigurationAcquireFailedError, _TwilioError51);\n\n function ConfigurationAcquireFailedError() {\n _classCallCheck(this, ConfigurationAcquireFailedError);\n\n return _possibleConstructorReturn(this, (ConfigurationAcquireFailedError.__proto__ || Object.getPrototypeOf(ConfigurationAcquireFailedError)).call(this, 53500, 'Unable to acquire configuration'));\n }\n\n return ConfigurationAcquireFailedError;\n}(TwilioError);\n\nexports.ConfigurationAcquireFailedError = ConfigurationAcquireFailedError;\nObject.defineProperty(TwilioErrorByCode, 53500, {\n value: ConfigurationAcquireFailedError\n});\n/**\n * @class ConfigurationAcquireTurnFailedError\n * @classdesc Raised whenever the Server is unable to return TURN credentials to the Client\n * @extends TwilioError\n * @property {number} code - 53501\n * @property {string} message - 'Unable to acquire TURN credentials'\n */\n\nvar ConfigurationAcquireTurnFailedError = function (_TwilioError52) {\n _inherits(ConfigurationAcquireTurnFailedError, _TwilioError52);\n\n function ConfigurationAcquireTurnFailedError() {\n _classCallCheck(this, ConfigurationAcquireTurnFailedError);\n\n return _possibleConstructorReturn(this, (ConfigurationAcquireTurnFailedError.__proto__ || Object.getPrototypeOf(ConfigurationAcquireTurnFailedError)).call(this, 53501, 'Unable to acquire TURN credentials'));\n }\n\n return ConfigurationAcquireTurnFailedError;\n}(TwilioError);\n\nexports.ConfigurationAcquireTurnFailedError = ConfigurationAcquireTurnFailedError;\nObject.defineProperty(TwilioErrorByCode, 53501, {\n value: ConfigurationAcquireTurnFailedError\n});","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\n\nvar WebRTC = {};\nObject.defineProperties(WebRTC, {\n getStats: {\n enumerable: true,\n value: require('./getstats')\n },\n getUserMedia: {\n enumerable: true,\n value: require('./getusermedia')\n },\n MediaStream: {\n enumerable: true,\n value: require('./mediastream')\n },\n MediaStreamTrack: {\n enumerable: true,\n value: require('./mediastreamtrack')\n },\n RTCIceCandidate: {\n enumerable: true,\n value: require('./rtcicecandidate')\n },\n RTCPeerConnection: {\n enumerable: true,\n value: require('./rtcpeerconnection')\n },\n RTCSessionDescription: {\n enumerable: true,\n value: require('./rtcsessiondescription')\n },\n version: {\n enumerable: true,\n value: require('../package.json').version\n }\n});\nmodule.exports = WebRTC;","/* eslint new-cap:0, no-console:0 */\n'use strict';\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar constants = require('./constants');\n\nvar DEFAULT_LOG_LEVEL = constants.DEFAULT_LOG_LEVEL;\n\nvar E = require('./constants').typeErrors;\n\nvar deprecationWarningsByComponentConstructor = void 0;\n\nfunction getDeprecationWarnings(componentConstructor) {\n deprecationWarningsByComponentConstructor = deprecationWarningsByComponentConstructor || new Map();\n\n if (deprecationWarningsByComponentConstructor.has(componentConstructor)) {\n return deprecationWarningsByComponentConstructor.get(componentConstructor);\n }\n\n var deprecationWarnings = new Set();\n deprecationWarningsByComponentConstructor.set(componentConstructor, deprecationWarnings);\n return deprecationWarnings;\n}\n/**\n * Selectively outputs messages to console.log based on specified minimum module\n * specific log levels.\n *\n * NOTE: The values in the logLevels object passed to the constructor is changed\n * by subsequent calls to {@link Log#setLevels}.\n */\n\n\nvar Log = function () {\n /**\n * Construct a new {@link Log} object.\n * @param {String} moduleName - Name of the logging module (webrtc/media/signaling)\n * @param {object} component - Component owning this instance of {@link Log}\n * @param {LogLevels} logLevels - Logging levels. See {@link LogLevels}\n */\n function Log(moduleName, component, logLevels) {\n _classCallCheck(this, Log);\n\n if (typeof moduleName !== 'string') {\n throw E.INVALID_TYPE('moduleName', 'string');\n }\n\n if (!component) {\n throw E.REQUIRED_ARGUMENT('component');\n }\n\n if ((typeof logLevels === 'undefined' ? 'undefined' : _typeof(logLevels)) !== 'object') {\n logLevels = {};\n }\n\n validateLogLevels(logLevels);\n /* istanbul ignore next */\n\n Object.defineProperties(this, {\n _component: {\n value: component\n },\n _logLevels: {\n value: logLevels\n },\n _warnings: {\n value: new Set()\n },\n logLevel: {\n get: function get() {\n return Log.getLevelByName(logLevels[moduleName] || DEFAULT_LOG_LEVEL);\n }\n },\n name: {\n get: component.toString.bind(component)\n }\n });\n }\n /**\n * Get the log level (number) by its name (string)\n * @param {String} name - Name of the log level\n * @returns {Number} Requested log level\n * @throws {TwilioError} INVALID_LOG_LEVEL (32056)\n * @public\n */\n\n\n _createClass(Log, [{\n key: 'createLog',\n\n /**\n * Create a child {@link Log} instance with this._logLevels\n * @param moduleName - Name of the logging module\n * @param component - Component owning this instance of {@link Log}\n * @returns {Log} this\n */\n value: function createLog(moduleName, component) {\n return new Log(moduleName, component, this._logLevels);\n }\n /**\n * Set new log levels.\n * This changes the levels for all its ancestors,\n * siblings, and children and descendants instances of {@link Log}.\n * @param {LogLevels} levels - New log levels\n * @throws {TwilioError} INVALID_ARGUMENT\n * @returns {Log} this\n */\n\n }, {\n key: 'setLevels',\n value: function setLevels(levels) {\n validateLogLevels(levels);\n Object.assign(this._logLevels, levels);\n return this;\n }\n /**\n * Log a message using the console method appropriate for the specified logLevel\n * @param {Number} logLevel - Log level of the message being logged\n * @param {String} message - Message(s) to log\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'log',\n value: function log(logLevel, message) {\n var logSpec = Log._levels[logLevel]; // eslint-disable-next-line no-use-before-define\n\n if (!logSpec) {\n throw E.INVALID_VALUE('logLevel', LOG_LEVEL_VALUES);\n }\n\n if (this.logLevel <= logLevel) {\n var levelName = logSpec.name;\n var prefix = new Date().toISOString().split('T').concat(['|', levelName, 'in', this.name + ':']);\n logSpec.logFn.apply(console, prefix.concat(message));\n }\n\n return this;\n }\n /**\n * Log a debug message using console.log\n * @param {...String} messages - Message(s) to pass to console.log\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'debug',\n value: function debug() {\n return this.log(Log.DEBUG, [].slice.call(arguments));\n }\n /**\n * Log a deprecation warning. Deprecation warnings are logged as warnings and\n * they are only ever logged once.\n * @param {String} deprecationWarning - The deprecation warning\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'deprecated',\n value: function deprecated(deprecationWarning) {\n var deprecationWarnings = getDeprecationWarnings(this._component.constructor);\n\n if (deprecationWarnings.has(deprecationWarning)) {\n return this;\n }\n\n deprecationWarnings.add(deprecationWarning);\n return this.warn(deprecationWarning);\n }\n /**\n * Log an info message using console.info\n * @param {...String} messages - Message(s) to pass to console.info\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'info',\n value: function info() {\n return this.log(Log.INFO, [].slice.call(arguments));\n }\n /**\n * Log a warn message using console.warn\n * @param {...String} messages - Message(s) to pass to console.warn\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'warn',\n value: function warn() {\n return this.log(Log.WARN, [].slice.call(arguments));\n }\n /**\n * Log a warning once.\n * @param {String} warning\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'warnOnce',\n value: function warnOnce(warning) {\n if (this._warnings.has(warning)) {\n return this;\n }\n\n this._warnings.add(warning);\n\n return this.warn(warning);\n }\n /**\n * Log an error message using console.error\n * @param {...String} messages - Message(s) to pass to console.error\n * @returns {Log} This instance of {@link Log}\n * @public\n */\n\n }, {\n key: 'error',\n value: function error() {\n return this.log(Log.ERROR, [].slice.call(arguments));\n }\n /**\n * Log an error message using console.error and throw an exception\n * @param {TwilioError} error - Error to throw\n * @param {String} customMessage - Custom message for the error\n * @public\n */\n\n }, {\n key: 'throw',\n value: function _throw(error, customMessage) {\n if (error.clone) {\n error = error.clone(customMessage);\n }\n\n this.log(Log.ERROR, error);\n throw error;\n }\n }], [{\n key: 'getLevelByName',\n value: function getLevelByName(name) {\n if (!isNaN(name)) {\n return parseInt(name, 10);\n }\n\n name = name.toUpperCase();\n validateLogLevel(name);\n return Log[name];\n }\n }]);\n\n return Log;\n}(); // Singleton Constants\n\n/* eslint key-spacing:0 */\n\n/* istanbul ignore next */\n\n\nObject.defineProperties(Log, {\n DEBUG: {\n value: 0\n },\n INFO: {\n value: 1\n },\n WARN: {\n value: 2\n },\n ERROR: {\n value: 3\n },\n OFF: {\n value: 4\n },\n _levels: {\n value: [{\n name: 'DEBUG',\n logFn: console.log\n }, {\n name: 'INFO',\n logFn: console.info\n }, {\n name: 'WARN',\n logFn: console.warn\n }, {\n name: 'ERROR',\n logFn: console.error\n }, {\n name: 'OFF',\n logFn: function noop() {}\n }]\n }\n});\nvar LOG_LEVELS_SET = {};\nvar LOG_LEVEL_VALUES = [];\n\nvar LOG_LEVEL_NAMES = Log._levels.map(function (level, i) {\n LOG_LEVELS_SET[level.name] = true;\n LOG_LEVEL_VALUES.push(i);\n return level.name;\n});\n\nfunction validateLogLevel(level) {\n if (!(level in LOG_LEVELS_SET)) {\n throw E.INVALID_VALUE('level', LOG_LEVEL_NAMES);\n }\n}\n\nfunction validateLogLevels(levels) {\n Object.keys(levels).forEach(function (moduleName) {\n validateLogLevel(levels[moduleName].toUpperCase());\n });\n}\n\nmodule.exports = Log;","module.exports = require(\"regenerator-runtime\");\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","/* globals RTCPeerConnection, RTCRtpTransceiver */\n'use strict';\n\nvar flatMap = require('./').flatMap;\n\nvar guessBrowser = require('./').guessBrowser; // NOTE(mmalavalli): We cache Chrome's sdpSemantics support in order to prevent\n// instantiation of more than one RTCPeerConnection.\n\n\nvar isSdpSemanticsSupported = null;\n/**\n * Check if Chrome supports specifying sdpSemantics for an RTCPeerConnection.\n * @return {boolean}\n */\n\nfunction checkIfSdpSemanticsIsSupported() {\n if (typeof isSdpSemanticsSupported === 'boolean') {\n return isSdpSemanticsSupported;\n }\n\n if (typeof RTCPeerConnection === 'undefined') {\n isSdpSemanticsSupported = false;\n return isSdpSemanticsSupported;\n }\n\n try {\n new RTCPeerConnection({\n sdpSemantics: 'foo'\n });\n isSdpSemanticsSupported = false;\n } catch (e) {\n isSdpSemanticsSupported = true;\n }\n\n return isSdpSemanticsSupported;\n} // NOTE(mmalavalli): We cache Chrome's SDP format in order to prevent\n// instantiation of more than one RTCPeerConnection.\n\n\nvar chromeSdpFormat = null;\n/**\n * Get Chrome's default SDP format.\n * @returns {'planb'|'unified'}\n */\n\nfunction getChromeDefaultSdpFormat() {\n if (!chromeSdpFormat) {\n if (typeof RTCPeerConnection !== 'undefined' && 'addTransceiver' in RTCPeerConnection.prototype) {\n try {\n new RTCPeerConnection().addTransceiver('audio');\n chromeSdpFormat = 'unified';\n } catch (e) {\n chromeSdpFormat = 'planb';\n }\n } else {\n chromeSdpFormat = 'planb';\n }\n }\n\n return chromeSdpFormat;\n}\n/**\n * Get Chrome's SDP format.\n * @param {'plan-b'|'unified-plan'} [sdpSemantics]\n * @returns {'planb'|'unified'}\n */\n\n\nfunction getChromeSdpFormat(sdpSemantics) {\n if (!sdpSemantics || !checkIfSdpSemanticsIsSupported()) {\n return getChromeDefaultSdpFormat();\n }\n\n return {\n 'plan-b': 'planb',\n 'unified-plan': 'unified'\n }[sdpSemantics];\n}\n/**\n * Get Safari's default SDP format.\n * @returns {'planb'|'unified'}\n */\n\n\nfunction getSafariSdpFormat() {\n return typeof RTCRtpTransceiver !== 'undefined' && 'currentDirection' in RTCRtpTransceiver.prototype ? 'unified' : 'planb';\n}\n/**\n * Get the browser's default SDP format.\n * @param {'plan-b'|'unified-plan'} [sdpSemantics]\n * @returns {'planb'|'unified'}\n */\n\n\nfunction getSdpFormat(sdpSemantics) {\n return {\n chrome: getChromeSdpFormat(sdpSemantics),\n firefox: 'unified',\n safari: getSafariSdpFormat()\n }[guessBrowser()] || null;\n}\n/**\n * Match a pattern across lines, returning the first capture group for any\n * matches.\n * @param {string} pattern\n * @param {string} lines\n * @returns {Set} matches\n */\n\n\nfunction getMatches(pattern, lines) {\n var matches = lines.match(new RegExp(pattern, 'gm')) || [];\n return matches.reduce(function (results, line) {\n var match = line.match(new RegExp(pattern));\n return match ? results.add(match[1]) : results;\n }, new Set());\n}\n/**\n * Get a Set of MediaStreamTrack IDs from an SDP.\n * @param {string} pattern\n * @param {string} sdp\n * @returns {Set}\n */\n\n\nfunction getTrackIds(pattern, sdp) {\n return getMatches(pattern, sdp);\n}\n/**\n * Get a Set of MediaStreamTrack IDs from a Plan B SDP.\n * @param {string} sdp - Plan B SDP\n * @returns {Set} trackIds\n */\n\n\nfunction getPlanBTrackIds(sdp) {\n return getTrackIds('^a=ssrc:[0-9]+ +msid:.+ +(.+) *$', sdp);\n}\n/**\n * Get a Set of MediaStreamTrack IDs from a Unified Plan SDP.\n * @param {string} sdp - Unified Plan SDP\n * @returns {Set} trackIds\n */\n\n\nfunction getUnifiedPlanTrackIds(sdp) {\n return getTrackIds('^a=msid:.+ +(.+) *$', sdp);\n}\n/**\n * Get a Set of SSRCs for a MediaStreamTrack from a Plan B SDP.\n * @param {string} sdp - Plan B SDP\n * @param {string} trackId - MediaStreamTrack ID\n * @returns {Set}\n */\n\n\nfunction getPlanBSSRCs(sdp, trackId) {\n var pattern = '^a=ssrc:([0-9]+) +msid:[^ ]+ +' + trackId + ' *$';\n return getMatches(pattern, sdp);\n}\n/**\n * Get the m= sections of a particular kind and direction from an sdp.\n * @param {string} sdp - sdp string\n * @param {string} [kind] - Pattern for matching kind\n * @param {string} [direction] - Pattern for matching direction\n * @returns {Array} mediaSections\n */\n\n\nfunction getMediaSections(sdp, kind, direction) {\n kind = kind || '.*';\n direction = direction || '.*';\n return sdp.split('\\r\\nm=').slice(1).map(function (mediaSection) {\n return 'm=' + mediaSection;\n }).filter(function (mediaSection) {\n var kindPattern = new RegExp('m=' + kind, 'gm');\n var directionPattern = new RegExp('a=' + direction, 'gm');\n return kindPattern.test(mediaSection) && directionPattern.test(mediaSection);\n });\n}\n/**\n * Get the Set of SSRCs announced in a MediaSection.\n * @param {string} mediaSection\n * @returns {Array} ssrcs\n */\n\n\nfunction getMediaSectionSSRCs(mediaSection) {\n return Array.from(getMatches('^a=ssrc:([0-9]+) +.*$', mediaSection));\n}\n/**\n * Get a Set of SSRCs for a MediaStreamTrack from a Unified Plan SDP.\n * @param {string} sdp - Unified Plan SDP\n * @param {string} trackId - MediaStreamTrack ID\n * @returns {Set}\n */\n\n\nfunction getUnifiedPlanSSRCs(sdp, trackId) {\n var mediaSections = getMediaSections(sdp);\n var msidAttrRegExp = new RegExp('^a=msid:[^ ]+ +' + trackId + ' *$', 'gm');\n var matchingMediaSections = mediaSections.filter(function (mediaSection) {\n return mediaSection.match(msidAttrRegExp);\n });\n return new Set(flatMap(matchingMediaSections, getMediaSectionSSRCs));\n}\n/**\n * Get a Map from MediaStreamTrack IDs to SSRCs from an SDP.\n * @param {function(string): Set} getTrackIds\n * @param {function(string, string): Set} getSSRCs\n * @param {string} sdp - SDP\n * @returns {Map>} trackIdsToSSRCs\n */\n\n\nfunction getTrackIdsToSSRCs(getTrackIds, getSSRCs, sdp) {\n return new Map(Array.from(getTrackIds(sdp)).map(function (trackId) {\n return [trackId, getSSRCs(sdp, trackId)];\n }));\n}\n/**\n * Get a Map from MediaStreamTrack IDs to SSRCs from a Plan B SDP.\n * @param {string} sdp - Plan B SDP\n * @returns {Map>} trackIdsToSSRCs\n */\n\n\nfunction getPlanBTrackIdsToSSRCs(sdp) {\n return getTrackIdsToSSRCs(getPlanBTrackIds, getPlanBSSRCs, sdp);\n}\n/**\n * Get a Map from MediaStreamTrack IDs to SSRCs from a Plan B SDP.\n * @param {string} sdp - Plan B SDP\n * @returns {Map>} trackIdsToSSRCs\n */\n\n\nfunction getUnifiedPlanTrackIdsToSSRCs(sdp) {\n return getTrackIdsToSSRCs(getUnifiedPlanTrackIds, getUnifiedPlanSSRCs, sdp);\n}\n/**\n * Update the mappings from MediaStreamTrack IDs to SSRCs as indicated by both\n * the Map from MediaStreamTrack IDs to SSRCs and the SDP itself. This method\n * ensures that SSRCs never change once announced.\n * @param {function(string): Map>} getTrackIdsToSSRCs\n * @param {Map>} trackIdsToSSRCs\n * @param {string} sdp - SDP\n * @returns {strinng} updatedSdp - updated SDP\n */\n\n\nfunction updateTrackIdsToSSRCs(getTrackIdsToSSRCs, trackIdsToSSRCs, sdp) {\n var newTrackIdsToSSRCs = getTrackIdsToSSRCs(sdp);\n var newSSRCsToOldSSRCs = new Map(); // NOTE(mroberts): First, update a=ssrc attributes.\n\n newTrackIdsToSSRCs.forEach(function (ssrcs, trackId) {\n if (!trackIdsToSSRCs.has(trackId)) {\n trackIdsToSSRCs.set(trackId, ssrcs);\n return;\n }\n\n var oldSSRCs = Array.from(trackIdsToSSRCs.get(trackId));\n var newSSRCs = Array.from(ssrcs);\n oldSSRCs.forEach(function (oldSSRC, i) {\n var newSSRC = newSSRCs[i];\n newSSRCsToOldSSRCs.set(newSSRC, oldSSRC);\n var pattern = '^a=ssrc:' + newSSRC + ' (.*)$';\n var replacement = 'a=ssrc:' + oldSSRC + ' $1';\n sdp = sdp.replace(new RegExp(pattern, 'gm'), replacement);\n });\n }); // NOTE(mroberts): Then, update a=ssrc-group attributes.\n\n var pattern = '^(a=ssrc-group:[^ ]+ +)(.*)$';\n var matches = sdp.match(new RegExp(pattern, 'gm')) || [];\n matches.forEach(function (line) {\n var match = line.match(new RegExp(pattern));\n\n if (!match) {\n return;\n }\n\n var prefix = match[1];\n var newSSRCs = match[2];\n var oldSSRCs = newSSRCs.split(' ').map(function (newSSRC) {\n var oldSSRC = newSSRCsToOldSSRCs.get(newSSRC);\n return oldSSRC ? oldSSRC : newSSRC;\n }).join(' ');\n sdp = sdp.replace(match[0], prefix + oldSSRCs);\n });\n return sdp;\n}\n/**\n * Update the mappings from MediaStreamTrack IDs to SSRCs as indicated by both\n * the Map from MediaStreamTrack IDs to SSRCs and the Plan B SDP itself. This\n * method ensures that SSRCs never change once announced.\n * @param {Map>} trackIdsToSSRCs\n * @param {string} sdp - Plan B SDP\n * @returns {string} updatedSdp - updated Plan B SDP\n */\n\n\nfunction updatePlanBTrackIdsToSSRCs(trackIdsToSSRCs, sdp) {\n return updateTrackIdsToSSRCs(getPlanBTrackIdsToSSRCs, trackIdsToSSRCs, sdp);\n}\n/**\n * Update the mappings from MediaStreamTrack IDs to SSRCs as indicated by both\n * the Map from MediaStreamTrack IDs to SSRCs and the Plan B SDP itself. This\n * method ensures that SSRCs never change once announced.\n * @param {Map>} trackIdsToSSRCs\n * @param {string} sdp - Plan B SDP\n * @returns {string} updatedSdp - updated Plan B SDP\n */\n\n\nfunction updateUnifiedPlanTrackIdsToSSRCs(trackIdsToSSRCs, sdp) {\n return updateTrackIdsToSSRCs(getUnifiedPlanTrackIdsToSSRCs, trackIdsToSSRCs, sdp);\n}\n\nexports.getSdpFormat = getSdpFormat;\nexports.getMediaSections = getMediaSections;\nexports.getPlanBTrackIds = getPlanBTrackIds;\nexports.getUnifiedPlanTrackIds = getUnifiedPlanTrackIds;\nexports.getPlanBSSRCs = getPlanBSSRCs;\nexports.getUnifiedPlanSSRCs = getUnifiedPlanSSRCs;\nexports.updatePlanBTrackIdsToSSRCs = updatePlanBTrackIdsToSSRCs;\nexports.updateUnifiedPlanTrackIdsToSSRCs = updateUnifiedPlanTrackIdsToSSRCs;","'use strict';\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\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\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof2(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof2(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('events').EventEmitter;\n\nvar util = require('./util');\n/**\n * {@link StateMachine} represents a state machine. The state machine supports a\n * reentrant locking mechanism to allow asynchronous state transitions to ensure\n * they have not been preempted. Calls to {@link StateMachine#takeLock} are\n * guaranteed to be resolved in FIFO order.\n * @extends EventEmitter\n * @property {boolean} isLocked - whether or not the {@link StateMachine} is\n * locked performing asynchronous state transition\n * @property {string} state - the current state\n * @emits {@link StateMachine#stateChanged}\n */\n\n\nvar StateMachine = function (_EventEmitter) {\n _inherits(StateMachine, _EventEmitter);\n /**\n * Construct a {@link StateMachine}.\n * @param {string} initialState - the intiial state\n * @param {object} states\n */\n\n\n function StateMachine(initialState, states) {\n _classCallCheck(this, StateMachine);\n\n var _this = _possibleConstructorReturn(this, (StateMachine.__proto__ || Object.getPrototypeOf(StateMachine)).call(this));\n\n var lock = null;\n var state = initialState;\n states = transformStates(states);\n Object.defineProperties(_this, {\n _lock: {\n get: function get() {\n return lock;\n },\n set: function set(_lock) {\n lock = _lock;\n }\n },\n _reachableStates: {\n value: reachable(states)\n },\n _state: {\n get: function get() {\n return state;\n },\n set: function set(_state) {\n state = _state;\n }\n },\n _states: {\n value: states\n },\n _whenDeferreds: {\n value: new Set()\n },\n isLocked: {\n enumerable: true,\n get: function get() {\n return lock !== null;\n }\n },\n state: {\n enumerable: true,\n get: function get() {\n return state;\n }\n }\n });\n\n _this.on('stateChanged', function (state) {\n _this._whenDeferreds.forEach(function (deferred) {\n deferred.when(state, deferred.resolve, deferred.reject);\n });\n });\n\n return _this;\n }\n /**\n * Returns a promise whose executor function is called on each state change.\n * @param {function(state: string, resolve: function, reject: function): void} when\n * @returns {Promise.<*>}\n * @private\n */\n\n\n _createClass(StateMachine, [{\n key: '_whenPromise',\n value: function _whenPromise(when) {\n var _this2 = this;\n\n if (typeof when !== 'function') {\n return Promise.reject(new Error('when() executor must be a function'));\n }\n\n var deferred = util.defer();\n deferred.when = when;\n\n this._whenDeferreds.add(deferred);\n\n return deferred.promise.then(function (payload) {\n _this2._whenDeferreds[\"delete\"](deferred);\n\n return payload;\n }, function (error) {\n _this2._whenDeferreds[\"delete\"](deferred);\n\n throw error;\n });\n }\n /**\n * This method takes a lock and passes the {@link StateMachine#Key} to your\n * transition function. You may perform zero or more state transitions in your\n * transition function, but you should check for preemption in each tick. You\n * may also reenter the lock. Once the Promise returned by your transition\n * function resolves or rejects, this method releases the lock it acquired for\n * you.\n * @param {string} name - a name for the lock\n * @param {function(StateMachine#Key): Promise} transitionFunction\n * @returns {Promise}\n */\n // NOTE(mroberts): This method is named after a Haskell function:\n // https://hackage.haskell.org/package/base-4.8.2.0/docs/Control-Exception.html#v:bracket\n\n }, {\n key: 'bracket',\n value: function bracket(name, transitionFunction) {\n var key = void 0;\n var self = this;\n\n function releaseLock(error) {\n if (self.hasLock(key)) {\n self.releaseLockCompletely(key);\n }\n\n if (error) {\n throw error;\n }\n }\n\n return this.takeLock(name).then(function gotKey(_key) {\n key = _key;\n return transitionFunction(key);\n }).then(function success(result) {\n releaseLock();\n return result;\n }, releaseLock);\n }\n /**\n * Check whether or not a {@link StateMachine#Key} matches the lock.\n * @param {StateMachine#Key} key\n * @returns {boolean}\n */\n\n }, {\n key: 'hasLock',\n value: function hasLock(key) {\n return this._lock === key;\n }\n /**\n * Preempt any pending state transitions and immediately transition to the new\n * state. If a lock name is specified, take the lock and return the\n * {@link StateMachine#Key}.\n * @param {string} newState\n * @param {?string} [name=null] - a name for the lock\n * @param {Array<*>} [payload=[]]\n * @returns {?StateMachine#Key}\n */\n\n }, {\n key: 'preempt',\n value: function preempt(newState, name, payload) {\n // 1. Check that the new state is valid.\n if (!isValidTransition(this._states, this.state, newState)) {\n throw new Error('Cannot transition from \"' + this.state + '\" to \"' + newState + '\"');\n } // 2. Release the old lock, if any.\n\n\n var oldLock = void 0;\n\n if (this.isLocked) {\n oldLock = this._lock;\n this._lock = null;\n } // 3. Take the lock, if requested.\n\n\n var key = null;\n\n if (name) {\n key = this.takeLockSync(name);\n } // 4. If a lock wasn't requested, take a \"preemption\" lock in order to\n // maintain FIFO order of those taking locks.\n\n\n var preemptionKey = key ? null : this.takeLockSync('preemption'); // 5. Transition.\n\n this.transition(newState, key || preemptionKey, payload); // 6. Preempt anyone blocked on the old lock.\n\n if (oldLock) {\n oldLock.resolve();\n } // 7. Release the \"preemption\" lock, if we took it.\n\n\n if (preemptionKey) {\n this.releaseLock(preemptionKey);\n }\n\n return key;\n }\n /**\n * Release a lock. This method succeeds only if the {@link StateMachine} is\n * still locked and has not been preempted.\n * @param {StateMachine#Key} key\n * @throws Error\n */\n\n }, {\n key: 'releaseLock',\n value: function releaseLock(key) {\n if (!this.isLocked) {\n throw new Error('Could not release the lock for ' + key.name + ' because the StateMachine is not locked');\n } else if (!this.hasLock(key)) {\n throw new Error('Could not release the lock for ' + key.name + ' because ' + this._lock.name + ' has the lock');\n }\n\n if (key.depth === 0) {\n this._lock = null;\n key.resolve();\n } else {\n key.depth--;\n }\n }\n /**\n * Release a lock completely, even if it has been reentered. This method\n * succeeds only if the {@link StateMachine} is still locked and has not been\n * preempted.\n * @param {StateMachine#Key} key\n * @throws Error\n */\n\n }, {\n key: 'releaseLockCompletely',\n value: function releaseLockCompletely(key) {\n if (!this.isLocked) {\n throw new Error('Could not release the lock for ' + key.name + ' because the StateMachine is not locked');\n } else if (!this.hasLock(key)) {\n throw new Error('Could not release the lock for ' + key.name + ' because ' + this._lock.name + ' has the lock');\n }\n\n key.depth = 0;\n this._lock = null;\n key.resolve();\n }\n /**\n * Take a lock, returning a Promise for the {@link StateMachine#Key}. You should\n * take a lock anytime you intend to perform asynchronous transitions. Calls to\n * this method are guaranteed to be resolved in FIFO order. You may reenter\n * a lock by passing its {@link StateMachine#Key}.\n * @param {string|StateMachine#Key} nameOrKey - a name for the lock or an\n * existing {@link StateMachine#Key}\n * @returns {Promise}\n */\n\n }, {\n key: 'takeLock',\n value: function takeLock(nameOrKey) {\n var _this3 = this; // Reentrant lock\n\n\n if ((typeof nameOrKey === 'undefined' ? 'undefined' : _typeof(nameOrKey)) === 'object') {\n var key = nameOrKey;\n return new Promise(function (resolve) {\n resolve(_this3.takeLockSync(key));\n });\n } // New lock\n\n\n var name = nameOrKey;\n\n if (this.isLocked) {\n var takeLock = this.takeLock.bind(this, name);\n return this._lock.promise.then(takeLock);\n }\n\n return Promise.resolve(this.takeLockSync(name));\n }\n /**\n * Take a lock, returning the {@Link StateMachine#Key}. This method throws if\n * the {@link StateMachine} is locked or the wrong {@link StateMachine#Key} is\n * provided. You may reenter a lock by passing its {@link StateMachine#Key}.\n * @param {string|StateMachine#Key} nameOrKey - a name for the lock or an\n * existing {@link StateMachine#Key}\n * @returns {object}\n * @throws Error\n */\n\n }, {\n key: 'takeLockSync',\n value: function takeLockSync(nameOrKey) {\n var key = typeof nameOrKey === 'string' ? null : nameOrKey;\n var name = key ? key.name : nameOrKey;\n\n if (key && !this.hasLock(key) || !key && this.isLocked) {\n throw new Error('Could not take the lock for ' + name + ' because the lock for ' + this._lock.name + ' was not released');\n } // Reentrant lock\n\n\n if (key) {\n key.depth++;\n return key;\n } // New lock\n\n\n var lock = makeLock(name);\n this._lock = lock;\n return lock;\n }\n /**\n * Transition to a new state. If the {@link StateMachine} is locked, you must\n * provide the {@link StateMachine#Key}. An invalid state or the wrong\n * {@link StateMachine#Key} will throw an error.\n * @param {string} newState\n * @param {?StateMachine#Key} [key=null]\n * @param {Array<*>} [payload=[]]\n * @throws {Error}\n */\n\n }, {\n key: 'transition',\n value: function transition(newState, key, payload) {\n payload = payload || []; // 1. If we're locked, required the key.\n\n if (this.isLocked) {\n if (!key) {\n throw new Error('You must provide the key in order to ' + 'transition');\n } else if (!this.hasLock(key)) {\n throw new Error('Could not transition using the key for ' + key.name + ' because ' + this._lock.name + ' has the lock');\n }\n } else if (key) {\n throw new Error('Key provided for ' + key.name + ', but the StateMachine was not locked (possibly due to preemption)');\n } // 2. Check that the new state is valid.\n\n\n if (!isValidTransition(this._states, this.state, newState)) {\n throw new Error('Cannot transition from \"' + this.state + '\" to \"' + newState + '\"');\n } // 3. Update the state and emit an event.\n\n\n this._state = newState;\n this.emit.apply(this, _toConsumableArray(['stateChanged', newState].concat(payload)));\n }\n /**\n * Attempt to transition to a new state. Unlike {@link StateMachine#transition},\n * this method does not throw.\n * @param {string} newState\n * @param {?StateMachine#Key} [key=null]\n * @param {Array<*>} [payload=[]]\n * @returns {boolean}\n */\n\n }, {\n key: 'tryTransition',\n value: function tryTransition(newState, key, payload) {\n try {\n this.transition(newState, key, payload);\n } catch (error) {\n return false;\n }\n\n return true;\n }\n /**\n * Return a Promise that resolves when the {@link StateMachine} transitions to\n * the specified state. If the {@link StateMachine} transitions such that the\n * requested state becomes unreachable, the Promise rejects.\n * @param {string} state\n * @returns {Promise}\n */\n\n }, {\n key: 'when',\n value: function when(state) {\n var _this4 = this;\n\n if (this.state === state) {\n return Promise.resolve(this);\n } else if (!isValidTransition(this._reachableStates, this.state, state)) {\n return Promise.reject(createUnreachableError(this.state, state));\n }\n\n return this._whenPromise(function (newState, resolve, reject) {\n if (newState === state) {\n resolve(_this4);\n } else if (!isValidTransition(_this4._reachableStates, newState, state)) {\n reject(createUnreachableError(newState, state));\n }\n });\n }\n }]);\n\n return StateMachine;\n}(EventEmitter);\n/**\n * @event StateMachine#stateChanged\n * @param {string} newState\n */\n\n/**\n * Check if a transition is valid.\n * @private\n * @param {Map<*, Set<*>>} graph\n * @param {*} from\n * @param {*} to\n * @returns {boolean}\n */\n\n\nfunction isValidTransition(graph, from, to) {\n return graph.get(from).has(to);\n}\n/**\n * @typedef {object} StateMachine#Key\n */\n\n\nfunction makeLock(name) {\n var lock = util.defer();\n lock.name = name;\n lock.depth = 0;\n return lock;\n}\n/**\n * Compute the transitive closure of a graph (i.e. what nodes are reachable from\n * where).\n * @private\n * @param {Map<*, Set<*>>} graph\n * @returns {Map<*, Set<*>>}\n */\n\n\nfunction reachable(graph) {\n return Array.from(graph.keys()).reduce(function (newGraph, from) {\n return newGraph.set(from, reachableFrom(graph, from));\n }, new Map());\n}\n/**\n * Compute the Set of node reachable from a particular node in the graph.\n * @private\n * @param {Map<*, Set<*>>} graph\n * @param {*} from\n * @param {Set<*>} [to]\n * @returns {Set<*>}\n */\n\n\nfunction reachableFrom(graph, from, to) {\n to = to || new Set();\n graph.get(from).forEach(function (node) {\n if (!to.has(node)) {\n to.add(node);\n reachableFrom(graph, node, to).forEach(to.add, to);\n }\n });\n return to;\n}\n\nfunction transformStates(states) {\n var newStates = new Map();\n\n for (var key in states) {\n newStates.set(key, new Set(states[key]));\n }\n\n return newStates;\n}\n/**\n * Create an \"unreachable state\" Error.\n * @param {string} here\n * @param {string} there\n * @returns {Error}\n */\n\n\nfunction createUnreachableError(here, there) {\n return new Error('\"' + there + '\" cannot be reached from \"' + here + '\"');\n}\n\nmodule.exports = StateMachine;","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","module.exports = {};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","'use strict';\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();\n\nvar difference = require('../').difference;\n\nvar flatMap = require('../').flatMap;\n\nvar setSimulcastInMediaSection = require('./simulcast');\n\nvar ptToFixedBitrateAudioCodecName = {\n 0: 'PCMU',\n 8: 'PCMA'\n};\n/**\n * A payload type\n * @typedef {number} PT\n */\n\n/**\n * An {@link AudioCodec} or {@link VideoCodec}\n * @typedef {AudioCodec|VideoCodec} Codec\n */\n// NOTE(mmalavalli): This value is derived from the IETF spec\n// for JSEP, and it is used to convert a 'b=TIAS' value in bps\n// to a 'b=AS' value in kbps.\n// Spec: https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-21#section-5.9\n\nvar RTCP_BITRATE = 16000;\n/**\n * Construct a b= line string for the given max bitrate in bps. If the modifier\n * is 'AS', then the max bitrate will be converted to kbps using the formula\n * specified in the IETF spec for JSEP mentioned above.\n * @param {string} modifier - 'AS' | 'TIAS'\n * @param {?number} maxBitrate - Max outgoing bitrate (bps)\n * @returns {?string} - If \"maxBitrate\" is null, then returns null;\n * otherwise return the constructed b= line string\n */\n\nfunction createBLine(modifier, maxBitrate) {\n if (!maxBitrate) {\n return null;\n }\n\n return '\\r\\nb=' + modifier + ':' + (modifier === 'AS' ? Math.round((maxBitrate + RTCP_BITRATE) / 950) : maxBitrate);\n}\n/**\n * Create a Codec Map for the given m= section.\n * @param {string} section - The given m= section\n * @returns {Map>}\n */\n\n\nfunction createCodecMapForMediaSection(section) {\n return Array.from(createPtToCodecName(section)).reduce(function (codecMap, pair) {\n var pt = pair[0];\n var codecName = pair[1];\n var pts = codecMap.get(codecName) || [];\n return codecMap.set(codecName, pts.concat(pt));\n }, new Map());\n}\n/**\n * Create a Map of MIDs to m= sections for the given SDP.\n * @param {string} sdp\n * @returns {Map}\n */\n\n\nfunction createMidToMediaSectionMap(sdp) {\n return getMediaSections(sdp).reduce(function (midsToMediaSections, mediaSection) {\n var mid = getMidForMediaSection(mediaSection);\n return mid ? midsToMediaSections.set(mid, mediaSection) : midsToMediaSections;\n }, new Map());\n}\n/**\n * Create a Map from PTs to codec names for the given m= section.\n * @param {string} mediaSection - The given m= section.\n * @returns {Map} ptToCodecName\n */\n\n\nfunction createPtToCodecName(mediaSection) {\n return getPayloadTypesInMediaSection(mediaSection).reduce(function (ptToCodecName, pt) {\n var rtpmapPattern = new RegExp('a=rtpmap:' + pt + ' ([^/]+)');\n var matches = mediaSection.match(rtpmapPattern);\n var codecName = matches ? matches[1].toLowerCase() : ptToFixedBitrateAudioCodecName[pt] ? ptToFixedBitrateAudioCodecName[pt].toLowerCase() : '';\n return ptToCodecName.set(pt, codecName);\n }, new Map());\n}\n/**\n * Get the associated fmtp attributes for the given Payload Type in an m= section.\n * @param {PT} pt\n * @param {string} mediaSection\n * @returns {?object}\n */\n\n\nfunction getFmtpAttributesForPt(pt, mediaSection) {\n // In \"a=fmtp: =[;=]*\", the regex matches the codec\n // profile parameters expressed as name/value pairs separated by \";\".\n var fmtpRegex = new RegExp('^a=fmtp:' + pt + ' (.+)$', 'm');\n var matches = mediaSection.match(fmtpRegex);\n return matches && matches[1].split(';').reduce(function (attrs, nvPair) {\n var _nvPair$split = nvPair.split('='),\n _nvPair$split2 = _slicedToArray(_nvPair$split, 2),\n name = _nvPair$split2[0],\n value = _nvPair$split2[1];\n\n attrs[name] = isNaN(value) ? value : parseInt(value, 10);\n return attrs;\n }, {});\n}\n/**\n * Get the MID for the given m= section.\n * @param {string} mediaSection\n * @return {?string}\n */\n\n\nfunction getMidForMediaSection(mediaSection) {\n // In \"a=mid:\", the regex matches .\n var midMatches = mediaSection.match(/^a=mid:(.+)$/m);\n return midMatches && midMatches[1];\n}\n/**\n * Get the m= sections of a particular kind and direction from an sdp.\n * @param {string} sdp - SDP string\n * @param {string} [kind] - Pattern for matching kind\n * @param {string} [direction] - Pattern for matching direction\n * @returns {Array} mediaSections\n */\n\n\nfunction getMediaSections(sdp, kind, direction) {\n return sdp.replace(/\\r\\n\\r\\n$/, '\\r\\n').split('\\r\\nm=').slice(1).map(function (mediaSection) {\n return 'm=' + mediaSection;\n }).filter(function (mediaSection) {\n var kindPattern = new RegExp('m=' + (kind || '.*'), 'gm');\n var directionPattern = new RegExp('a=' + (direction || '.*'), 'gm');\n return kindPattern.test(mediaSection) && directionPattern.test(mediaSection);\n });\n}\n/**\n * Get the Codec Payload Types present in the first line of the given m= section\n * @param {string} section - The m= section\n * @returns {Array} Payload Types\n */\n\n\nfunction getPayloadTypesInMediaSection(section) {\n var mLine = section.split('\\r\\n')[0]; // In \"m= ... \",\n // the regex matches and the Payload Types.\n\n var matches = mLine.match(/([0-9]+)/g); // This should not happen, but in case there are no Payload Types in\n // the m= line, return an empty array.\n\n if (!matches) {\n return [];\n } // Since only the Payload Types are needed, we discard the .\n\n\n return matches.slice(1).map(function (match) {\n return parseInt(match, 10);\n });\n}\n/**\n * Create the reordered Codec Payload Types based on the preferred Codec Names.\n * @param {Map>} codecMap - Codec Map\n * @param {Array} preferredCodecs - Preferred Codec Names\n * @returns {Array} Reordered Payload Types\n */\n\n\nfunction getReorderedPayloadTypes(codecMap, preferredCodecs) {\n preferredCodecs = preferredCodecs.map(function (codecName) {\n return codecName.toLowerCase();\n });\n var preferredPayloadTypes = flatMap(preferredCodecs, function (codecName) {\n return codecMap.get(codecName) || [];\n });\n var remainingCodecs = difference(Array.from(codecMap.keys()), preferredCodecs);\n var remainingPayloadTypes = flatMap(remainingCodecs, function (codecName) {\n return codecMap.get(codecName);\n });\n return preferredPayloadTypes.concat(remainingPayloadTypes);\n}\n/**\n * Set the specified max bitrate in the given m= section.\n * @param {string} modifier - 'AS' | 'TIAS'\n * @param {?number} maxBitrate - Max outgoing bitrate (bps)\n * @param {string} section - m= section string\n * @returns {string} The updated m= section\n */\n\n\nfunction setBitrateInMediaSection(modifier, maxBitrate, section) {\n var bLine = createBLine(modifier, maxBitrate) || '';\n var bLinePattern = /\\r\\nb=(AS|TIAS):([0-9]+)/;\n var bLineMatched = section.match(bLinePattern);\n\n if (!bLineMatched) {\n return section.replace(/(\\r\\n)?$/, bLine + '$1');\n }\n\n var maxBitrateMatched = parseInt(bLineMatched[2], 10);\n maxBitrate = maxBitrate || Infinity;\n bLine = createBLine(modifier, Math.min(maxBitrateMatched, maxBitrate));\n return section.replace(bLinePattern, bLine);\n}\n/**\n * Set maximum bitrates to the media sections in a given sdp.\n * @param {string} sdp - sdp string\n * @param {string} modifier - 'AS' | 'TIAS\"\n * @param {?number} maxAudioBitrate - Max outgoing audio bitrate (bps), null\n * if no limit is to be applied\n * @param {?number} maxVideoBitrate - Max outgoing video bitrate (bps), null\n * if no limit is to be applied\n * @returns {string} - The updated sdp string\n */\n\n\nfunction setBitrateParameters(sdp, modifier, maxAudioBitrate, maxVideoBitrate) {\n var mediaSections = getMediaSections(sdp);\n var session = sdp.split('\\r\\nm=')[0];\n return [session].concat(mediaSections.map(function (section) {\n // Bitrate parameters should not be applied to m=application sections\n // or to m=(audio|video) sections that do not receive media.\n if (!/^m=(audio|video)/.test(section) || !/a=(recvonly|sendrecv)/.test(section)) {\n return section;\n }\n\n var kind = section.match(/^m=(audio|video)/)[1];\n var maxBitrate = kind === 'audio' ? maxAudioBitrate : maxVideoBitrate;\n return setBitrateInMediaSection(modifier, maxBitrate, section);\n })).join('\\r\\n');\n}\n/**\n * Set the given Codec Payload Types in the first line of the given m= section.\n * @param {Array} payloadTypes - Payload Types\n * @param {string} section - Given m= section\n * @returns {string} - Updated m= section\n */\n\n\nfunction setPayloadTypesInMediaSection(payloadTypes, section) {\n var lines = section.split('\\r\\n');\n var mLine = lines[0];\n var otherLines = lines.slice(1);\n mLine = mLine.replace(/([0-9]+\\s?)+$/, payloadTypes.join(' '));\n return [mLine].concat(otherLines).join('\\r\\n');\n}\n/**\n * Return a new SDP string with the re-ordered codec preferences.\n * @param {string} sdp\n * @param {Array} preferredAudioCodecs - If empty, the existing order\n * of audio codecs is preserved\n * @param {Array} preferredVideoCodecs - If empty, the\n * existing order of video codecs is preserved\n * @returns {string} Updated SDP string\n */\n\n\nfunction setCodecPreferences(sdp, preferredAudioCodecs, preferredVideoCodecs) {\n var mediaSections = getMediaSections(sdp);\n var session = sdp.split('\\r\\nm=')[0];\n return [session].concat(mediaSections.map(function (section) {\n // Codec preferences should not be applied to m=application sections.\n if (!/^m=(audio|video)/.test(section)) {\n return section;\n }\n\n var kind = section.match(/^m=(audio|video)/)[1];\n var codecMap = createCodecMapForMediaSection(section);\n var preferredCodecs = kind === 'audio' ? preferredAudioCodecs : preferredVideoCodecs.map(function (codec) {\n return codec.codec;\n });\n var payloadTypes = getReorderedPayloadTypes(codecMap, preferredCodecs);\n var newSection = setPayloadTypesInMediaSection(payloadTypes, section);\n var pcmaPayloadTypes = codecMap.get('pcma') || [];\n var pcmuPayloadTypes = codecMap.get('pcmu') || [];\n var fixedBitratePayloadTypes = kind === 'audio' ? new Set(pcmaPayloadTypes.concat(pcmuPayloadTypes)) : new Set();\n return fixedBitratePayloadTypes.has(payloadTypes[0]) ? newSection.replace(/\\r\\nb=(AS|TIAS):([0-9]+)/g, '') : newSection;\n })).join('\\r\\n');\n}\n/**\n * Return a new SDP string with simulcast settings.\n * @param {string} sdp\n * @param {'planb' | 'unified'} sdpFormat\n * @param {Map} trackIdsToAttributes\n * @returns {string} Updated SDP string\n */\n\n\nfunction setSimulcast(sdp, sdpFormat, trackIdsToAttributes) {\n var mediaSections = getMediaSections(sdp);\n var session = sdp.split('\\r\\nm=')[0];\n return [session].concat(mediaSections.map(function (section) {\n section = section.replace(/\\r\\n$/, '');\n\n if (!/^m=video/.test(section)) {\n return section;\n }\n\n var codecMap = createCodecMapForMediaSection(section);\n var payloadTypes = getPayloadTypesInMediaSection(section);\n var vp8PayloadTypes = new Set(codecMap.get('vp8') || []);\n var hasVP8PayloadType = payloadTypes.some(function (payloadType) {\n return vp8PayloadTypes.has(payloadType);\n });\n return hasVP8PayloadType ? setSimulcastInMediaSection(section, sdpFormat, trackIdsToAttributes) : section;\n })).concat('').join('\\r\\n');\n}\n/**\n * Get the matching Payload Types in a unified plan local m= section for a particular remote codec.\n * @param {Codec} remoteCodec\n * @param {PT} remotePt\n * @param {Map} localCodecsToPts\n * @param {string} localSection\n * @param {string} remoteSection\n * @returns {Array}\n */\n\n\nfunction unifiedPlanGetMatchingLocalPayloadTypes(remoteCodec, remotePt, localCodecsToPts, localSection, remoteSection) {\n // If there is at most one local Payload Type that matches the remote codec, retain it.\n var matchingLocalPts = localCodecsToPts.get(remoteCodec) || [];\n\n if (matchingLocalPts.length <= 1) {\n return matchingLocalPts;\n } // If there are no fmtp attributes for the codec in the remote m= section,\n // then we cannot get a match in the local m= section. In that case, retain\n // all matching local Payload Types.\n\n\n var remoteFmtpAttrs = getFmtpAttributesForPt(remotePt, remoteSection);\n\n if (!remoteFmtpAttrs) {\n return matchingLocalPts;\n } // Among the matched local Payload Types, find the one that matches the remote\n // fmtp attributes.\n\n\n var matchinglocalPt = matchingLocalPts.find(function (localPt) {\n var localFmtpAttrs = getFmtpAttributesForPt(localPt, localSection);\n return localFmtpAttrs && Object.keys(remoteFmtpAttrs).every(function (attr) {\n return remoteFmtpAttrs[attr] === localFmtpAttrs[attr];\n });\n }); // If none of the matched local Payload Types also have matching fmtp attributes,\n // then retain all of them, otherwise retain only the local Payload Type that\n // matches the remote fmtp attributes.\n\n return typeof matchinglocalPt === 'number' ? [matchinglocalPt] : matchingLocalPts;\n}\n/**\n * Filter codecs in a local unified plan m= section based on its equivalent remote m= section.\n * @param {string} localSection\n * @param {Map} remoteMidsToMediaSections\n * @returns {string}\n */\n\n\nfunction unifiedPlanFilterCodecsInLocalMediaSection(localSection, remoteMidsToMediaSections) {\n // Do nothing if the local m= section represents neither audio nor video.\n if (!/^m=(audio|video)/.test(localSection)) {\n return localSection;\n } // Do nothing if the local m= section does not have an equivalent remote m= section.\n\n\n var localMid = getMidForMediaSection(localSection);\n var remoteSection = localMid && remoteMidsToMediaSections.get(localMid);\n\n if (!remoteSection) {\n return localSection;\n } // Construct a Map of the remote Payload Types to their codec names.\n\n\n var remotePtToCodecs = createPtToCodecName(remoteSection); // Construct a Map of the local codec names to their Payload Types.\n\n var localCodecsToPts = createCodecMapForMediaSection(localSection); // Maintain a list of local non-rtx Payload Types to retain.\n\n var localPts = flatMap(Array.from(remotePtToCodecs), function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n remotePt = _ref2[0],\n remoteCodec = _ref2[1];\n\n return remoteCodec !== 'rtx' ? unifiedPlanGetMatchingLocalPayloadTypes(remoteCodec, remotePt, localCodecsToPts, localSection, remoteSection) : [];\n }); // For each local Payload Type that will be retained, retain their\n // corresponding rtx Payload Type if present.\n\n var localRtxPts = localCodecsToPts.get('rtx') || []; // In \"a=fmtp: apt=\", extract the codec PT associated with rtxPt.\n\n localPts = localPts.concat(localRtxPts.filter(function (rtxPt) {\n var fmtpAttrs = getFmtpAttributesForPt(rtxPt, localSection);\n return fmtpAttrs && localPts.includes(fmtpAttrs.apt);\n })); // Filter out the below mentioned attribute lines in the local m= section that\n // do not belong to one of the local Payload Types that are to be retained.\n // 1. \"a=rtpmap: \"\n // 2. \"a=rtcp-fb: [ ]*\"\n // 3. \"a=fmtp: =[;=]*\"\n\n var lines = localSection.split('\\r\\n').filter(function (line) {\n var ptMatches = line.match(/^a=(rtpmap|fmtp|rtcp-fb):(.+) .+$/);\n var pt = ptMatches && ptMatches[2];\n return !ptMatches || pt && localPts.includes(parseInt(pt, 10));\n }); // Filter the list of Payload Types in the first line of the m= section.\n\n var orderedLocalPts = getPayloadTypesInMediaSection(localSection).filter(function (pt) {\n return localPts.includes(pt);\n });\n return setPayloadTypesInMediaSection(orderedLocalPts, lines.join('\\r\\n'));\n}\n/**\n * Filter local codecs based on the remote unified plan SDP.\n * @param {string} localSdp\n * @param {string} remoteSdp\n * @returns {string} - Updated local SDP\n */\n\n\nfunction unifiedPlanFilterLocalCodecs(localSdp, remoteSdp) {\n var localMediaSections = getMediaSections(localSdp);\n var localSession = localSdp.split('\\r\\nm=')[0];\n var remoteMidsToMediaSections = createMidToMediaSectionMap(remoteSdp);\n return [localSession].concat(localMediaSections.map(function (localSection) {\n return unifiedPlanFilterCodecsInLocalMediaSection(localSection, remoteMidsToMediaSections);\n })).join('\\r\\n');\n}\n/**\n * Return a new SDP string after reverting simulcast for non vp8 sections in remote sdp.\n * @param localSdp - simulcast enabled local sdp\n * @param localSdpWithoutSimulcast - local sdp before simulcast was set\n * @param remoteSdp - remote sdp\n * @return {string} Updated SDP string\n */\n\n\nfunction revertSimulcastForNonVP8MediaSections(localSdp, localSdpWithoutSimulcast, remoteSdp) {\n var remoteMidToMediaSections = createMidToMediaSectionMap(remoteSdp);\n var localMidToMediaSectionsWithoutSimulcast = createMidToMediaSectionMap(localSdpWithoutSimulcast);\n var mediaSections = getMediaSections(localSdp);\n var session = localSdp.split('\\r\\nm=')[0];\n return [session].concat(mediaSections.map(function (section) {\n section = section.replace(/\\r\\n$/, '');\n\n if (!/^m=video/.test(section)) {\n return section;\n }\n\n var midMatches = section.match(/^a=mid:(.+)$/m);\n var mid = midMatches && midMatches[1];\n\n if (!mid) {\n return section;\n }\n\n var remoteSection = remoteMidToMediaSections.get(mid);\n var remotePtToCodecs = createPtToCodecName(remoteSection);\n var remotePayloadTypes = getPayloadTypesInMediaSection(remoteSection);\n var isVP8ThePreferredCodec = remotePayloadTypes.length && remotePtToCodecs.get(remotePayloadTypes[0]) === 'vp8';\n return isVP8ThePreferredCodec ? section : localMidToMediaSectionsWithoutSimulcast.get(mid).replace(/\\r\\n$/, '');\n })).concat('').join('\\r\\n');\n}\n/**\n * Add or rewrite MSIDs for new m= sections in the given Unified Plan SDP with their\n * corresponding local MediaStreamTrack IDs. These can be different when previously\n * removed MediaStreamTracks are added back (or Track IDs may not be present in the\n * SDPs at all once browsers implement the latest WebRTC spec).\n * @param {string} sdp\n * @param {Map} activeMidsToTrackIds\n * @param {Map>} trackIdsByKind\n * @returns {string}\n */\n\n\nfunction unifiedPlanAddOrRewriteNewTrackIds(sdp, activeMidsToTrackIds, trackIdsByKind) {\n // NOTE(mmalavalli): The m= sections for the new MediaStreamTracks are usually\n // present after the m= sections for the existing MediaStreamTracks, in order\n // of addition.\n var newMidsToTrackIds = Array.from(trackIdsByKind).reduce(function (midsToTrackIds, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n kind = _ref4[0],\n trackIds = _ref4[1];\n\n var mediaSections = getMediaSections(sdp, kind, 'send(only|recv)');\n var newMids = mediaSections.map(getMidForMediaSection).filter(function (mid) {\n return !activeMidsToTrackIds.has(mid);\n });\n newMids.forEach(function (mid, i) {\n return midsToTrackIds.set(mid, trackIds[i]);\n });\n return midsToTrackIds;\n }, new Map());\n return unifiedPlanAddOrRewriteTrackIds(sdp, newMidsToTrackIds);\n}\n/**\n * Add or rewrite MSIDs in the given Unified Plan SDP with their corresponding local\n * MediaStreamTrack IDs. These IDs need not be the same (or Track IDs may not be\n * present in the SDPs at all once browsers implement the latest WebRTC spec).\n * @param {string} sdp\n * @param {Map} midsToTrackIds\n * @returns {string}\n */\n\n\nfunction unifiedPlanAddOrRewriteTrackIds(sdp, midsToTrackIds) {\n var mediaSections = getMediaSections(sdp);\n var session = sdp.split('\\r\\nm=')[0];\n return [session].concat(mediaSections.map(function (mediaSection) {\n // Do nothing if the m= section represents neither audio nor video.\n if (!/^m=(audio|video)/.test(mediaSection)) {\n return mediaSection;\n } // This shouldn't happen, but in case there is no MID for the m= section, do nothing.\n\n\n var mid = getMidForMediaSection(mediaSection);\n\n if (!mid) {\n return mediaSection;\n } // In case there is no Track ID for the given MID in the map, do nothing.\n\n\n var trackId = midsToTrackIds.get(mid);\n\n if (!trackId) {\n return mediaSection;\n } // This shouldn't happen, but in case there is no a=msid: line, do nothing.\n\n\n var attributes = (mediaSection.match(/^a=msid:(.+)$/m) || [])[1];\n\n if (!attributes) {\n return mediaSection;\n } // If the a=msid: line contains the \"appdata\" field, then replace it with the Track ID,\n // otherwise append the Track ID.\n\n\n var _attributes$split = attributes.split(' '),\n _attributes$split2 = _slicedToArray(_attributes$split, 2),\n msid = _attributes$split2[0],\n trackIdToRewrite = _attributes$split2[1];\n\n var msidRegex = new RegExp('msid:' + msid + (trackIdToRewrite ? ' ' + trackIdToRewrite : '') + '$', 'gm');\n return mediaSection.replace(msidRegex, 'msid:' + msid + ' ' + trackId);\n })).join('\\r\\n');\n}\n\nexports.createCodecMapForMediaSection = createCodecMapForMediaSection;\nexports.createPtToCodecName = createPtToCodecName;\nexports.getMediaSections = getMediaSections;\nexports.revertSimulcastForNonVP8MediaSections = revertSimulcastForNonVP8MediaSections;\nexports.setBitrateParameters = setBitrateParameters;\nexports.setCodecPreferences = setCodecPreferences;\nexports.setSimulcast = setSimulcast;\nexports.unifiedPlanFilterLocalCodecs = unifiedPlanFilterLocalCodecs;\nexports.unifiedPlanAddOrRewriteNewTrackIds = unifiedPlanAddOrRewriteNewTrackIds;\nexports.unifiedPlanAddOrRewriteTrackIds = unifiedPlanAddOrRewriteTrackIds;","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","'use strict';\n\nmodule.exports = {\n LocalAudioTrack: require('./localaudiotrack'),\n LocalVideoTrack: require('./localvideotrack'),\n LocalDataTrack: require('./localdatatrack')\n};","'use strict';\n\nvar _require = require('events'),\n EventEmitter = _require.EventEmitter;\n\nvar _require2 = require('./util'),\n hidePrivateAndCertainPublicPropertiesInClass = _require2.hidePrivateAndCertainPublicPropertiesInClass;\n\nmodule.exports = hidePrivateAndCertainPublicPropertiesInClass(EventEmitter, ['domain']);","'use strict';\n/**\n * A {@link Timeout} represents a resettable and clearable timeout.\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar Timeout = function () {\n /**\n * Construct a {@link Timeout}.\n * @param {function} fn - Function to call\n * @param {number} delay - Delay in milliseconds\n * @param {boolean} [autoStart=true] - If true, then start the {@link Timeout}.\n */\n function Timeout(fn, delay) {\n var autoStart = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n _classCallCheck(this, Timeout);\n\n Object.defineProperties(this, {\n _delay: {\n value: delay,\n writable: true\n },\n _fn: {\n value: fn\n },\n _timeout: {\n value: null,\n writable: true\n }\n });\n\n if (autoStart) {\n this.start();\n }\n }\n /**\n * The {@link Timeout} delay in milliseconds.\n * @property {number}\n */\n\n\n _createClass(Timeout, [{\n key: 'setDelay',\n\n /**\n * Update the {@link Timeout} delay.\n * @param {number} delay\n * @returns {void}\n */\n value: function setDelay(delay) {\n this._delay = delay;\n }\n /**\n * Start the {@link Timeout}, if not already started.\n * @returns {void}\n */\n\n }, {\n key: 'start',\n value: function start() {\n var _this = this;\n\n if (!this.isSet) {\n this._timeout = setTimeout(function () {\n var fn = _this._fn;\n\n _this.clear();\n\n fn();\n }, this._delay);\n }\n }\n /**\n * Clear the {@link Timeout}.\n * @returns {void}\n */\n\n }, {\n key: 'clear',\n value: function clear() {\n clearTimeout(this._timeout);\n this._timeout = null;\n }\n /**\n * Reset the {@link Timeout}.\n * @returns {void}\n */\n\n }, {\n key: 'reset',\n value: function reset() {\n this.clear();\n this.start();\n }\n }, {\n key: 'delay',\n get: function get() {\n return this._delay;\n }\n /**\n * Whether the {@link Timeout} is set.\n * @property {boolean}\n */\n\n }, {\n key: 'isSet',\n get: function get() {\n return !!this._timeout;\n }\n }]);\n\n return Timeout;\n}();\n\nmodule.exports = Timeout;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (t, e) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = e(require(\"moment\")) : \"function\" == typeof define && define.amd ? define(\"moment-range\", [\"moment\"], e) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports[\"moment-range\"] = e(require(\"moment\")) : t[\"moment-range\"] = e(t.moment);\n}(this, function (t) {\n return function (t) {\n function e(r) {\n if (n[r]) return n[r].exports;\n var o = n[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return t[r].call(o.exports, o, o.exports, e), o.l = !0, o.exports;\n }\n\n var n = {};\n return e.m = t, e.c = n, e.i = function (t) {\n return t;\n }, e.d = function (t, n, r) {\n e.o(t, n) || Object.defineProperty(t, n, {\n configurable: !1,\n enumerable: !0,\n get: r\n });\n }, e.n = function (t) {\n var n = t && t.__esModule ? function () {\n return t[\"default\"];\n } : function () {\n return t;\n };\n return e.d(n, \"a\", n), n;\n }, e.o = function (t, e) {\n return Object.prototype.hasOwnProperty.call(t, e);\n }, e.p = \"\", e(e.s = 3);\n }([function (t, e, n) {\n \"use strict\";\n\n var r = n(5)();\n\n t.exports = function (t) {\n return t !== r && null !== t;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = n(18)() ? Symbol : n(20);\n }, function (e, n) {\n e.exports = t;\n }, function (t, e, n) {\n \"use strict\";\n\n function r(t) {\n return t && t.__esModule ? t : {\n \"default\": t\n };\n }\n\n function o(t, e, n) {\n return e in t ? Object.defineProperty(t, e, {\n value: n,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : t[e] = n, t;\n }\n\n function i(t, e) {\n if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n function u(t) {\n return t.range = function (e, n) {\n var r = this;\n return \"string\" == typeof e && y.hasOwnProperty(e) ? new h(t(r).startOf(e), t(r).endOf(e)) : new h(e, n);\n }, t.rangeFromInterval = function (e) {\n var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1,\n r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : t();\n if (t.isMoment(r) || (r = t(r)), !r.isValid()) throw new Error(\"Invalid date.\");\n var o = r.clone().add(n, e),\n i = [];\n return i.push(t.min(r, o)), i.push(t.max(r, o)), new h(i);\n }, t.rangeFromISOString = function (e) {\n var n = a(e),\n r = t.parseZone(n[0]),\n o = t.parseZone(n[1]);\n return new h(r, o);\n }, t.parseZoneRange = t.rangeFromISOString, t.fn.range = t.range, t.range.constructor = h, t.isRange = function (t) {\n return t instanceof h;\n }, t.fn.within = function (t) {\n return t.contains(this.toDate());\n }, t;\n }\n\n function a(t) {\n return t.split(\"/\");\n }\n\n Object.defineProperty(e, \"__esModule\", {\n value: !0\n }), e.DateRange = void 0;\n\n var s = function () {\n function t(t, e) {\n var n = [],\n r = !0,\n o = !1,\n i = void 0;\n\n try {\n for (var u, a = t[Symbol.iterator](); !(r = (u = a.next()).done) && (n.push(u.value), !e || n.length !== e); r = !0) {\n ;\n }\n } catch (t) {\n o = !0, i = t;\n } finally {\n try {\n !r && a[\"return\"] && a[\"return\"]();\n } finally {\n if (o) throw i;\n }\n }\n\n return n;\n }\n\n return function (e, n) {\n if (Array.isArray(e)) return e;\n if (Symbol.iterator in Object(e)) return t(e, n);\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n };\n }(),\n c = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (t) {\n return _typeof(t);\n } : function (t) {\n return t && \"function\" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? \"symbol\" : _typeof(t);\n },\n f = function () {\n function t(t, e) {\n for (var n = 0; n < e.length; n++) {\n var r = e[n];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(t, r.key, r);\n }\n }\n\n return function (e, n, r) {\n return n && t(e.prototype, n), r && t(e, r), e;\n };\n }();\n\n e.extendMoment = u;\n\n var l = n(2),\n v = r(l),\n d = n(1),\n p = r(d),\n y = {\n year: !0,\n quarter: !0,\n month: !0,\n week: !0,\n day: !0,\n hour: !0,\n minute: !0,\n second: !0\n },\n h = e.DateRange = function () {\n function t(e, n) {\n i(this, t);\n var r = e,\n o = n;\n if (1 === arguments.length || void 0 === n) if (\"object\" === (void 0 === e ? \"undefined\" : c(e)) && 2 === e.length) {\n var u = s(e, 2);\n r = u[0], o = u[1];\n } else if (\"string\" == typeof e) {\n var f = a(e),\n l = s(f, 2);\n r = l[0], o = l[1];\n }\n this.start = r || 0 === r ? (0, v[\"default\"])(r) : (0, v[\"default\"])(-864e13), this.end = o || 0 === o ? (0, v[\"default\"])(o) : (0, v[\"default\"])(864e13);\n }\n\n return f(t, [{\n key: \"adjacent\",\n value: function value(t) {\n var e = this.start.isSame(t.end),\n n = this.end.isSame(t.start);\n return e && t.start.valueOf() <= this.start.valueOf() || n && t.end.valueOf() >= this.end.valueOf();\n }\n }, {\n key: \"add\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n adjacent: !1\n };\n return this.overlaps(t, e) ? new this.constructor(v[\"default\"].min(this.start, t.start), v[\"default\"].max(this.end, t.end)) : null;\n }\n }, {\n key: \"by\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n excludeEnd: !1,\n step: 1\n },\n n = this;\n return o({}, p[\"default\"].iterator, function () {\n var r = e.step || 1,\n o = Math.abs(n.start.diff(n.end, t)) / r,\n i = e.excludeEnd || !1,\n u = 0;\n return e.hasOwnProperty(\"exclusive\") && (i = e.exclusive), {\n next: function next() {\n var e = n.start.clone().add(u * r, t),\n a = i ? !(u < o) : !(u <= o);\n return u++, {\n done: a,\n value: a ? void 0 : e\n };\n }\n };\n });\n }\n }, {\n key: \"byRange\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n excludeEnd: !1,\n step: 1\n },\n n = this,\n r = e.step || 1,\n i = this.valueOf() / t.valueOf() / r,\n u = Math.floor(i),\n a = e.excludeEnd || !1,\n s = 0;\n return e.hasOwnProperty(\"exclusive\") && (a = e.exclusive), o({}, p[\"default\"].iterator, function () {\n return u === 1 / 0 ? {\n done: !0\n } : {\n next: function next() {\n var e = (0, v[\"default\"])(n.start.valueOf() + t.valueOf() * s * r),\n o = u === i && a ? !(s < u) : !(s <= u);\n return s++, {\n done: o,\n value: o ? void 0 : e\n };\n }\n };\n });\n }\n }, {\n key: \"center\",\n value: function value() {\n var t = this.start.valueOf() + this.diff() / 2;\n return (0, v[\"default\"])(t);\n }\n }, {\n key: \"clone\",\n value: function value() {\n return new this.constructor(this.start.clone(), this.end.clone());\n }\n }, {\n key: \"contains\",\n value: function value(e) {\n var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n excludeStart: !1,\n excludeEnd: !1\n },\n r = this.start.valueOf(),\n o = this.end.valueOf(),\n i = e.valueOf(),\n u = e.valueOf(),\n a = n.excludeStart || !1,\n s = n.excludeEnd || !1;\n n.hasOwnProperty(\"exclusive\") && (a = s = n.exclusive), e instanceof t && (i = e.start.valueOf(), u = e.end.valueOf());\n var c = r < i || r <= i && !a,\n f = o > u || o >= u && !s;\n return c && f;\n }\n }, {\n key: \"diff\",\n value: function value(t, e) {\n return this.end.diff(this.start, t, e);\n }\n }, {\n key: \"duration\",\n value: function value(t, e) {\n return this.diff(t, e);\n }\n }, {\n key: \"intersect\",\n value: function value(t) {\n var e = this.start.valueOf(),\n n = this.end.valueOf(),\n r = t.start.valueOf(),\n o = t.end.valueOf(),\n i = e == n,\n u = r == o;\n\n if (i) {\n var a = e;\n if (a == r || a == o) return null;\n if (a > r && a < o) return this.clone();\n } else if (u) {\n var s = r;\n if (s == e || s == n) return null;\n if (s > e && s < n) return new this.constructor(s, s);\n }\n\n return e <= r && r < n && n < o ? new this.constructor(r, n) : r < e && e < o && o <= n ? new this.constructor(e, o) : r < e && e <= n && n < o ? this.clone() : e <= r && r <= o && o <= n ? new this.constructor(r, o) : null;\n }\n }, {\n key: \"isEqual\",\n value: function value(t) {\n return this.start.isSame(t.start) && this.end.isSame(t.end);\n }\n }, {\n key: \"isSame\",\n value: function value(t) {\n return this.isEqual(t);\n }\n }, {\n key: \"overlaps\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n adjacent: !1\n },\n n = null !== this.intersect(t);\n return e.adjacent && !n ? this.adjacent(t) : n;\n }\n }, {\n key: \"reverseBy\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n excludeStart: !1,\n step: 1\n },\n n = this;\n return o({}, p[\"default\"].iterator, function () {\n var r = e.step || 1,\n o = Math.abs(n.start.diff(n.end, t)) / r,\n i = e.excludeStart || !1,\n u = 0;\n return e.hasOwnProperty(\"exclusive\") && (i = e.exclusive), {\n next: function next() {\n var e = n.end.clone().subtract(u * r, t),\n a = i ? !(u < o) : !(u <= o);\n return u++, {\n done: a,\n value: a ? void 0 : e\n };\n }\n };\n });\n }\n }, {\n key: \"reverseByRange\",\n value: function value(t) {\n var e = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {\n excludeStart: !1,\n step: 1\n },\n n = this,\n r = e.step || 1,\n i = this.valueOf() / t.valueOf() / r,\n u = Math.floor(i),\n a = e.excludeStart || !1,\n s = 0;\n return e.hasOwnProperty(\"exclusive\") && (a = e.exclusive), o({}, p[\"default\"].iterator, function () {\n return u === 1 / 0 ? {\n done: !0\n } : {\n next: function next() {\n var e = (0, v[\"default\"])(n.end.valueOf() - t.valueOf() * s * r),\n o = u === i && a ? !(s < u) : !(s <= u);\n return s++, {\n done: o,\n value: o ? void 0 : e\n };\n }\n };\n });\n }\n }, {\n key: \"snapTo\",\n value: function value(t) {\n var e = this.clone();\n return e.start.isSame((0, v[\"default\"])(-864e13)) || (e.start = e.start.startOf(t)), e.end.isSame((0, v[\"default\"])(864e13)) || (e.end = e.end.endOf(t)), e;\n }\n }, {\n key: \"subtract\",\n value: function value(t) {\n var e = this.start.valueOf(),\n n = this.end.valueOf(),\n r = t.start.valueOf(),\n o = t.end.valueOf();\n return null === this.intersect(t) ? [this] : r <= e && e < n && n <= o ? [] : r <= e && e < o && o < n ? [new this.constructor(o, n)] : e < r && r < n && n <= o ? [new this.constructor(e, r)] : e < r && r < o && o < n ? [new this.constructor(e, r), new this.constructor(o, n)] : e < r && r < n && o < n ? [new this.constructor(e, r), new this.constructor(r, n)] : [];\n }\n }, {\n key: \"toDate\",\n value: function value() {\n return [this.start.toDate(), this.end.toDate()];\n }\n }, {\n key: \"toString\",\n value: function value() {\n return this.start.format() + \"/\" + this.end.format();\n }\n }, {\n key: \"valueOf\",\n value: function value() {\n return this.end.valueOf() - this.start.valueOf();\n }\n }]), t;\n }();\n }, function (t, e, n) {\n \"use strict\";\n\n var r,\n o = n(6),\n i = n(13),\n u = n(9),\n a = n(15);\n r = t.exports = function (t, e) {\n var n, r, u, s, c;\n return arguments.length < 2 || \"string\" != typeof t ? (s = e, e = t, t = null) : s = arguments[2], null == t ? (n = u = !0, r = !1) : (n = a.call(t, \"c\"), r = a.call(t, \"e\"), u = a.call(t, \"w\")), c = {\n value: e,\n configurable: n,\n enumerable: r,\n writable: u\n }, s ? o(i(s), c) : c;\n }, r.gs = function (t, e, n) {\n var r, s, c, f;\n return \"string\" != typeof t ? (c = n, n = e, e = t, t = null) : c = arguments[3], null == e ? e = void 0 : u(e) ? null == n ? n = void 0 : u(n) || (c = n, n = void 0) : (c = e, e = n = void 0), null == t ? (r = !0, s = !1) : (r = a.call(t, \"c\"), s = a.call(t, \"e\")), f = {\n get: e,\n set: n,\n configurable: r,\n enumerable: s\n }, c ? o(i(c), f) : f;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = function () {};\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = n(7)() ? Object.assign : n(8);\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = function () {\n var t,\n e = Object.assign;\n return \"function\" == typeof e && (t = {\n foo: \"raz\"\n }, e(t, {\n bar: \"dwa\"\n }, {\n trzy: \"trzy\"\n }), t.foo + t.bar + t.trzy === \"razdwatrzy\");\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(10),\n o = n(14),\n i = Math.max;\n\n t.exports = function (t, e) {\n var n,\n u,\n a,\n s = i(arguments.length, 2);\n\n for (t = Object(o(t)), a = function a(r) {\n try {\n t[r] = e[r];\n } catch (t) {\n n || (n = t);\n }\n }, u = 1; u < s; ++u) {\n e = arguments[u], r(e).forEach(a);\n }\n\n if (void 0 !== n) throw n;\n return t;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = function (t) {\n return \"function\" == typeof t;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = n(11)() ? Object.keys : n(12);\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = function () {\n try {\n return Object.keys(\"primitive\"), !0;\n } catch (t) {\n return !1;\n }\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(0),\n o = Object.keys;\n\n t.exports = function (t) {\n return o(r(t) ? Object(t) : t);\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(0),\n o = Array.prototype.forEach,\n i = Object.create,\n u = function u(t, e) {\n var n;\n\n for (n in t) {\n e[n] = t[n];\n }\n };\n\n t.exports = function (t) {\n var e = i(null);\n return o.call(arguments, function (t) {\n r(t) && u(Object(t), e);\n }), e;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(0);\n\n t.exports = function (t) {\n if (!r(t)) throw new TypeError(\"Cannot use null or undefined\");\n return t;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = n(16)() ? String.prototype.contains : n(17);\n }, function (t, e, n) {\n \"use strict\";\n\n var r = \"razdwatrzy\";\n\n t.exports = function () {\n return \"function\" == typeof r.contains && !0 === r.contains(\"dwa\") && !1 === r.contains(\"foo\");\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = String.prototype.indexOf;\n\n t.exports = function (t) {\n return r.call(this, t, arguments[1]) > -1;\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r = {\n object: !0,\n symbol: !0\n };\n\n t.exports = function () {\n var t;\n if (\"function\" != typeof Symbol) return !1;\n t = Symbol(\"test symbol\");\n\n try {\n String(t);\n } catch (t) {\n return !1;\n }\n\n return !!r[_typeof(Symbol.iterator)] && !!r[_typeof(Symbol.toPrimitive)] && !!r[_typeof(Symbol.toStringTag)];\n };\n }, function (t, e, n) {\n \"use strict\";\n\n t.exports = function (t) {\n return !!t && (\"symbol\" == _typeof(t) || !!t.constructor && \"Symbol\" === t.constructor.name && \"Symbol\" === t[t.constructor.toStringTag]);\n };\n }, function (t, e, n) {\n \"use strict\";\n\n var r,\n o,\n _i,\n u,\n a = n(4),\n s = n(21),\n c = Object.create,\n f = Object.defineProperties,\n l = Object.defineProperty,\n v = Object.prototype,\n d = c(null);\n\n if (\"function\" == typeof Symbol) {\n r = Symbol;\n\n try {\n String(r()), u = !0;\n } catch (t) {}\n }\n\n var p = function () {\n var t = c(null);\n return function (e) {\n for (var n, r, o = 0; t[e + (o || \"\")];) {\n ++o;\n }\n\n return e += o || \"\", t[e] = !0, n = \"@@\" + e, l(v, n, a.gs(null, function (t) {\n r || (r = !0, l(this, n, a(t)), r = !1);\n })), n;\n };\n }();\n\n _i = function i(t) {\n if (this instanceof _i) throw new TypeError(\"Symbol is not a constructor\");\n return o(t);\n }, t.exports = o = function t(e) {\n var n;\n if (this instanceof t) throw new TypeError(\"Symbol is not a constructor\");\n return u ? r(e) : (n = c(_i.prototype), e = void 0 === e ? \"\" : String(e), f(n, {\n __description__: a(\"\", e),\n __name__: a(\"\", p(e))\n }));\n }, f(o, {\n \"for\": a(function (t) {\n return d[t] ? d[t] : d[t] = o(String(t));\n }),\n keyFor: a(function (t) {\n var e;\n s(t);\n\n for (e in d) {\n if (d[e] === t) return e;\n }\n }),\n hasInstance: a(\"\", r && r.hasInstance || o(\"hasInstance\")),\n isConcatSpreadable: a(\"\", r && r.isConcatSpreadable || o(\"isConcatSpreadable\")),\n iterator: a(\"\", r && r.iterator || o(\"iterator\")),\n match: a(\"\", r && r.match || o(\"match\")),\n replace: a(\"\", r && r.replace || o(\"replace\")),\n search: a(\"\", r && r.search || o(\"search\")),\n species: a(\"\", r && r.species || o(\"species\")),\n split: a(\"\", r && r.split || o(\"split\")),\n toPrimitive: a(\"\", r && r.toPrimitive || o(\"toPrimitive\")),\n toStringTag: a(\"\", r && r.toStringTag || o(\"toStringTag\")),\n unscopables: a(\"\", r && r.unscopables || o(\"unscopables\"))\n }), f(_i.prototype, {\n constructor: a(o),\n toString: a(\"\", function () {\n return this.__name__;\n })\n }), f(o.prototype, {\n toString: a(function () {\n return \"Symbol (\" + s(this).__description__ + \")\";\n }),\n valueOf: a(function () {\n return s(this);\n })\n }), l(o.prototype, o.toPrimitive, a(\"\", function () {\n var t = s(this);\n return \"symbol\" == _typeof(t) ? t : t.toString();\n })), l(o.prototype, o.toStringTag, a(\"c\", \"Symbol\")), l(_i.prototype, o.toStringTag, a(\"c\", o.prototype[o.toStringTag])), l(_i.prototype, o.toPrimitive, a(\"c\", o.prototype[o.toPrimitive]));\n }, function (t, e, n) {\n \"use strict\";\n\n var r = n(19);\n\n t.exports = function (t) {\n if (!r(t)) throw new TypeError(t + \" is not a symbol\");\n return t;\n };\n }]);\n});","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n\nvar EventEmitter = require('events').EventEmitter;\n/**\n * Event target.\n * @class\n */\n\n\nfunction EventTarget() {\n Object.defineProperties(this, {\n _eventEmitter: {\n value: new EventEmitter()\n }\n });\n}\n/**\n * Dispatch an Event to the {@link EventTarget}.\n * @param {Event} event\n */\n\n\nEventTarget.prototype.dispatchEvent = function dispatchEvent(event) {\n return this._eventEmitter.emit(event.type, event);\n};\n/**\n * Add an Event listener to the {@link EventTarget}.\n */\n\n\nEventTarget.prototype.addEventListener = function addEventListener() {\n return this._eventEmitter.addListener.apply(this._eventEmitter, arguments);\n};\n/**\n * Remove an Event listener to the {@link EventTarget}.\n */\n\n\nEventTarget.prototype.removeEventListener = function removeEventListener() {\n return this._eventEmitter.removeListener.apply(this._eventEmitter, arguments);\n};\n\nmodule.exports = EventTarget;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('../../eventemitter');\n\nvar _require = require('../../util'),\n buildLogLevels = _require.buildLogLevels,\n valueToJSON = _require.valueToJSON;\n\nvar DEFAULT_LOG_LEVEL = require('../../util/constants').DEFAULT_LOG_LEVEL;\n\nvar Log = require('../../util/log');\n\nvar nInstances = 0;\n/**\n * A {@link Track} represents a stream of audio, video, or data.\n * @extends EventEmitter\n * @property {Track.Kind} kind - The {@link Track}'s kind\n * @property {string} name - The {@link Track}'s name\n */\n\nvar Track = function (_EventEmitter) {\n _inherits(Track, _EventEmitter);\n /**\n * Construct a {@link Track}.\n * @param {Track.ID} id - The {@link Track}'s ID\n * @param {Track.Kind} kind - The {@link Track}'s kind\n * @param {{ log: Log, name: ?string }} options\n */\n\n\n function Track(id, kind, options) {\n _classCallCheck(this, Track);\n\n options = Object.assign({\n name: id,\n log: null,\n logLevel: DEFAULT_LOG_LEVEL\n }, options);\n\n var _this = _possibleConstructorReturn(this, (Track.__proto__ || Object.getPrototypeOf(Track)).call(this));\n\n var name = String(options.name);\n var logLevels = buildLogLevels(options.logLevel);\n var log = options.log ? options.log.createLog('media', _this) : new Log('media', _this, logLevels);\n Object.defineProperties(_this, {\n _instanceId: {\n value: ++nInstances\n },\n _log: {\n value: log\n },\n kind: {\n enumerable: true,\n value: kind\n },\n name: {\n enumerable: true,\n value: name\n }\n });\n return _this;\n }\n\n _createClass(Track, [{\n key: 'toJSON',\n value: function toJSON() {\n return valueToJSON(this);\n }\n }]);\n\n return Track;\n}(EventEmitter);\n/**\n * The {@link Track} ID is a string identifier for the {@link Track}.\n * @typedef {string} Track.ID\n */\n\n/**\n * The {@link Track} kind is either \"audio\", \"video\", or \"data\".\n * @typedef {string} Track.Kind\n */\n\n/**\n * The {@link Track}'s priority can be \"low\", \"standard\", or \"high\".\n * @typedef {string} Track.Priority\n */\n\n/**\n * The {@link Track} SID is a unique string identifier for the {@link Track}\n * that is published to a {@link Room}.\n * @typedef {string} Track.SID\n */\n\n/**\n * A {@link DataTrack} is a {@link LocalDataTrack} or {@link RemoteDataTrack}.\n * @typedef {LocalDataTrack|RemoteDataTrack} DataTrack\n */\n\n/**\n * A {@link LocalTrack} is a {@link LocalAudioTrack}, {@link LocalVideoTrack},\n * or {@link LocalDataTrack}.\n * @typedef {LocalAudioTrack|LocalVideoTrack|LocalDataTrack} LocalTrack\n */\n\n/**\n * {@link LocalTrack} options\n * @typedef {object} LocalTrackOptions\n * @property {LogLevel|LogLevels} logLevel - Log level for 'media' modules\n * @property {string} [name] - The {@link LocalTrack}'s name; by default,\n * it is set to the {@link LocalTrack}'s ID.\n */\n\n/**\n * A {@link RemoteTrack} is a {@link RemoteAudioTrack},\n * {@link RemoteVideoTrack}, or {@link RemoteDataTrack}.\n * @typedef {RemoteAudioTrack|RemoteVideoTrack|RemoteDataTrack} RemoteTrack\n */\n\n\nmodule.exports = Track;","'use strict';\n/**\n * A Promise that can be canceled with {@link CancelablePromise#cancel}.\n * @extends Promise\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\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar CancelablePromise = function () {\n /**\n * Construct a new {@link CancelablePromise}.\n * @param {CancelablePromise.OnCreate} onCreate\n * @param {CancelablePromise.OnCancel} onCancel\n */\n\n /**\n * A function to be called on {@link CancelablePromise} creation\n * @typedef {function} CancelablePromise.OnCreate\n * @param {function(*)} resolve\n * @param {function(*)} reject\n * @param {function(): boolean} isCanceled\n */\n\n /**\n * A function to be called when {@link CancelablePromise#cancel} is called\n * @typedef {function} CancelablePromise.OnCancel\n */\n function CancelablePromise(onCreate, onCancel) {\n var _this = this;\n\n _classCallCheck(this, CancelablePromise);\n /* istanbul ignore next */\n\n\n Object.defineProperties(this, {\n _isCancelable: {\n writable: true,\n value: true\n },\n _isCanceled: {\n writable: true,\n value: false\n },\n _onCancel: {\n value: onCancel\n }\n });\n Object.defineProperty(this, '_promise', {\n value: new Promise(function (resolve, reject) {\n onCreate(function (value) {\n _this._isCancelable = false;\n resolve(value);\n }, function (reason) {\n _this._isCancelable = false;\n reject(reason);\n }, function () {\n return _this._isCanceled;\n });\n })\n });\n }\n /**\n * Create a synchronously-rejected {@link CancelablePromise}.\n * @param {*} reason\n * @returns {Promise<*>}\n */\n\n\n _createClass(CancelablePromise, [{\n key: 'cancel',\n\n /**\n * Attempt to cancel the {@link CancelablePromise}.\n * @returns {this}\n */\n value: function cancel() {\n if (this._isCancelable) {\n this._isCanceled = true;\n\n this._onCancel();\n }\n\n return this;\n }\n /**\n * @param {function} onRejected\n * @returns {CancelablePromise}\n */\n\n }, {\n key: 'catch',\n value: function _catch() {\n var args = [].slice.call(arguments);\n var promise = this._promise;\n return new CancelablePromise(function onCreate(resolve, reject) {\n promise[\"catch\"].apply(promise, _toConsumableArray(args)).then(resolve, reject);\n }, this._onCancel);\n }\n /**\n * @param {?function} onResolved\n * @param {function} [onRejected]\n * @returns {CancelablePromise}\n */\n\n }, {\n key: 'then',\n value: function then() {\n var args = [].slice.call(arguments);\n var promise = this._promise;\n return new CancelablePromise(function onCreate(resolve, reject) {\n promise.then.apply(promise, _toConsumableArray(args)).then(resolve, reject);\n }, this._onCancel);\n }\n }], [{\n key: 'reject',\n value: function reject(reason) {\n return new CancelablePromise(function rejected(resolve, reject) {\n reject(reason);\n }, function onCancel() {// Do nothing.\n });\n }\n /**\n * Create a synchronously-resolved {@link CancelablePromise}.\n * @param {*|Promise<*>|Thenable<*>} result\n * @returns {CancelablePromise<*>}\n */\n\n }, {\n key: 'resolve',\n value: function resolve(result) {\n return new CancelablePromise(function resolved(resolve) {\n resolve(result);\n }, function onCancel() {// Do nothing.\n });\n }\n }]);\n\n return CancelablePromise;\n}();\n\nmodule.exports = CancelablePromise;","'use strict';\n\nvar asLocalTrack = require('./util').asLocalTrack;\n\nvar buildLogLevels = require('./util').buildLogLevels;\n\nvar getUserMedia = require('@twilio/webrtc').getUserMedia;\n\nvar _require = require('./media/track/es5'),\n LocalAudioTrack = _require.LocalAudioTrack,\n LocalDataTrack = _require.LocalDataTrack,\n LocalVideoTrack = _require.LocalVideoTrack;\n\nvar MediaStreamTrack = require('@twilio/webrtc').MediaStreamTrack;\n\nvar Log = require('./util/log');\n\nvar DEFAULT_LOG_LEVEL = require('./util/constants').DEFAULT_LOG_LEVEL;\n\nvar workaround180748 = require('./webaudio/workaround180748'); // This is used to make out which createLocalTracks() call a particular Log\n// statement belongs to. Each call to createLocalTracks() increments this\n// counter.\n\n\nvar createLocalTrackCalls = 0;\n/**\n * Request {@link LocalTrack}s. By default, it requests a\n * {@link LocalAudioTrack} and a {@link LocalVideoTrack}.\n * @alias module:twilio-video.createLocalTracks\n * @param {CreateLocalTracksOptions} [options]\n * @returns {Promise>}\n * @example\n * var Video = require('twilio-video');\n * // Request audio and video tracks\n * Video.createLocalTracks().then(function(localTracks) {\n * var localMediaContainer = document.getElementById('local-media-container-id');\n * localTracks.forEach(function(track) {\n * localMediaContainer.appendChild(track.attach());\n * });\n * });\n * @example\n * var Video = require('twilio-video');\n * // Request just the default audio track\n * Video.createLocalTracks({ audio: true }).then(function(localTracks) {\n * return Video.connect('my-token', {\n * name: 'my-cool-room',\n * tracks: localTracks\n * });\n * });\n * @example\n * var Video = require('twilio-video');\n * // Request the audio and video tracks with custom names\n * Video.createLocalTracks({\n * audio: { name: 'microphone' },\n * video: { name: 'camera' }\n * }).then(function(localTracks) {\n * localTracks.forEach(function(localTrack) {\n * console.log(localTrack.name);\n * });\n * });\n */\n\nfunction createLocalTracks(options) {\n var isAudioVideoAbsent = !(options && ('audio' in options || 'video' in options));\n options = Object.assign({\n audio: isAudioVideoAbsent,\n getUserMedia: getUserMedia,\n logLevel: DEFAULT_LOG_LEVEL,\n LocalAudioTrack: LocalAudioTrack,\n LocalDataTrack: LocalDataTrack,\n LocalVideoTrack: LocalVideoTrack,\n MediaStreamTrack: MediaStreamTrack,\n Log: Log,\n video: isAudioVideoAbsent\n }, options);\n var logComponentName = '[createLocalTracks #' + ++createLocalTrackCalls + ']';\n var logLevels = buildLogLevels(options.logLevel);\n var log = new options.Log('default', logComponentName, logLevels); // NOTE(mmalavalli): The Room \"name\" in \"options\" was being used\n // as the LocalTrack name in asLocalTrack(). So we pass a copy of\n // \"options\" without the \"name\".\n\n var localTrackOptions = Object.assign({\n log: log\n }, options);\n delete localTrackOptions.name;\n\n if (options.audio === false && options.video === false) {\n log.info('Neither audio nor video requested, so returning empty LocalTracks');\n return Promise.resolve([]);\n }\n\n if (options.tracks) {\n log.info('Adding user-provided LocalTracks');\n log.debug('LocalTracks:', options.tracks);\n return Promise.resolve(options.tracks);\n }\n\n var localTrackNameOptions = {\n audio: options.audio && options.audio.name ? {\n name: options.audio.name\n } : {},\n video: options.video && options.video.name ? {\n name: options.video.name\n } : {}\n };\n\n if (options.audio) {\n delete options.audio.name;\n }\n\n if (options.video) {\n delete options.video.name;\n }\n\n var mediaStreamConstraints = {\n audio: options.audio,\n video: options.video\n };\n var workaroundWebKitBug180748 = options.audio && options.audio.workaroundWebKitBug180748;\n var mediaStreamPromise = workaroundWebKitBug180748 ? workaround180748(log, options.getUserMedia, mediaStreamConstraints) : options.getUserMedia(mediaStreamConstraints);\n return mediaStreamPromise.then(function (mediaStream) {\n var mediaStreamTracks = mediaStream.getAudioTracks().concat(mediaStream.getVideoTracks());\n log.info('Call to getUserMedia successful; got MediaStreamTracks:', mediaStreamTracks);\n return mediaStreamTracks.map(function (mediaStreamTrack) {\n return asLocalTrack(mediaStreamTrack, Object.assign(localTrackNameOptions[mediaStreamTrack.kind], localTrackOptions));\n });\n }, function (error) {\n log.warn('Call to getUserMedia failed:', error);\n throw error;\n });\n}\n/**\n * {@link createLocalTracks} options\n * @typedef {object} CreateLocalTracksOptions\n * @property {boolean|CreateLocalTrackOptions} [audio=true] - Whether or not to\n * get local audio with getUserMedia when tracks\n * are not provided.\n * @property {LogLevel|LogLevels} [logLevel='warn'] - Set the log verbosity\n * of logging to console. Passing a {@link LogLevel} string will use the same\n * level for all components. Pass a {@link LogLevels} to set specific log\n * levels.\n * @property {boolean|CreateLocalTrackOptions} [video=true] - Whether or not to\n * get local video with getUserMedia when tracks\n * are not provided.\n */\n\n\nmodule.exports = createLocalTracks;","/* eslint new-cap:0 */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackPublication = require('./trackpublication');\n\nvar _require = require('../../util/constants'),\n E = _require.typeErrors,\n trackPriority = _require.trackPriority;\n/**\n * A {@link LocalTrackPublication} is a {@link LocalTrack} that has been\n * published to a {@link Room}.\n * @extends TrackPublication\n * @property {boolean} isTrackEnabled - whether the published {@link LocalTrack}\n * is enabled\n * @property {Track.Kind} kind - kind of the published {@link LocalTrack}\n * @property {Track.Priority} priority - the publish priority of the {@link LocalTrack}\n * @property {LocalTrack} track - the {@link LocalTrack}\n */\n\n\nvar LocalTrackPublication = function (_TrackPublication) {\n _inherits(LocalTrackPublication, _TrackPublication);\n /**\n * Construct a {@link LocalTrackPublication}.\n * @param {LocalTrackPublicationSignaling} signaling - The corresponding\n * {@link LocalTrackPublicationSignaling}\n * @param {LocalTrack} track - The {@link LocalTrack}\n * @param {function(LocalTrackPublication): void} unpublish - The callback\n * that unpublishes the {@link LocalTrackPublication}\n * @param {TrackPublicationOptions} options - {@link LocalTrackPublication}\n * options\n */\n\n\n function LocalTrackPublication(signaling, track, unpublish, options) {\n _classCallCheck(this, LocalTrackPublication);\n\n var _this = _possibleConstructorReturn(this, (LocalTrackPublication.__proto__ || Object.getPrototypeOf(LocalTrackPublication)).call(this, track.name, signaling.sid, options));\n\n Object.defineProperties(_this, {\n _reemitTrackEvent: {\n value: function value() {\n return _this.emit(_this.isTrackEnabled ? 'trackEnabled' : 'trackDisabled');\n }\n },\n _signaling: {\n value: signaling\n },\n _unpublish: {\n value: unpublish\n },\n isTrackEnabled: {\n enumerable: true,\n get: function get() {\n return this.track.kind === 'data' ? true : this.track.isEnabled;\n }\n },\n kind: {\n enumerable: true,\n value: track.kind\n },\n priority: {\n enumerable: true,\n get: function get() {\n return signaling.updatedPriority;\n }\n },\n track: {\n enumerable: true,\n value: track\n }\n });\n track.on('disabled', _this._reemitTrackEvent);\n track.on('enabled', _this._reemitTrackEvent);\n return _this;\n }\n\n _createClass(LocalTrackPublication, [{\n key: 'toString',\n value: function toString() {\n return '[LocalTrackPublication #' + this._instanceId + ': ' + this.trackSid + ']';\n }\n /**\n * Update the {@link Track.Priority} of the published {@link LocalTrack}.\n * @param {Track.Priority} priority - the new {@link Track.priority}\n * @returns {this}\n * @throws {RangeError}\n */\n\n }, {\n key: 'setPriority',\n value: function setPriority(priority) {\n var priorityValues = Object.values(trackPriority);\n\n if (!priorityValues.includes(priority)) {\n throw E.INVALID_VALUE('priority', priorityValues);\n }\n\n this._signaling.setPriority(priority);\n\n return this;\n }\n /**\n * Unpublish a {@link LocalTrackPublication}. This means that the media\n * from this {@link LocalTrackPublication} is no longer available to the\n * {@link Room}'s {@link RemoteParticipant}s.\n * @returns {this}\n */\n\n }, {\n key: 'unpublish',\n value: function unpublish() {\n this.track.removeListener('disabled', this._reemitTrackEvent);\n this.track.removeListener('enabled', this._reemitTrackEvent);\n\n this._unpublish(this);\n\n return this;\n }\n }]);\n\n return LocalTrackPublication;\n}(TrackPublication);\n\nmodule.exports = LocalTrackPublication;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackPublication = require('./trackpublication');\n/**\n * A {@link RemoteTrackPublication} represents a {@link RemoteTrack} that has\n * been published to a {@link Room}.\n * @extends TrackPublication\n * @property {boolean} isSubscribed - whether the published {@link RemoteTrack}\n * is subscribed to\n * @property {boolean} isTrackEnabled - whether the published\n * {@link RemoteTrack} is enabled\n * @property {Track.Kind} kind - kind of the published {@link RemoteTrack}\n * @property {Track.Priority} publishPriority - the {@link Track.Priority} of the published\n * {@link RemoteTrack} set by the {@link RemoteParticipant}\n * @property {?RemoteTrack} track - Unless you have subscribed to the\n * {@link RemoteTrack}, this property is null\n * @emits RemoteTrackPublication#publishPriorityChanged\n * @emits RemoteTrackPublication#subscribed\n * @emits RemoteTrackPublication#subscriptionFailed\n * @emits RemoteTrackPublication#trackDisabled\n * @emits RemoteTrackPublication#trackEnabled\n * @emits RemoteTrackPublication#trackSwitchedOff\n * @emits RemoteTrackPublication#trackSwitchedOn\n * @emits RemoteTrackPublication#unsubscribed\n *\n */\n\n\nvar RemoteTrackPublication = function (_TrackPublication) {\n _inherits(RemoteTrackPublication, _TrackPublication);\n /**\n * Construct a {@link RemoteTrackPublication}.\n * @param {RemoteTrackPublicationSignaling} signaling - {@link RemoteTrackPublication} signaling\n * @param {RemoteTrackPublicationOptions} options - {@link RemoteTrackPublication}\n * options\n */\n\n\n function RemoteTrackPublication(signaling, options) {\n _classCallCheck(this, RemoteTrackPublication);\n\n var _this = _possibleConstructorReturn(this, (RemoteTrackPublication.__proto__ || Object.getPrototypeOf(RemoteTrackPublication)).call(this, signaling.name, signaling.sid, options));\n\n Object.defineProperties(_this, {\n _signaling: {\n value: signaling\n },\n _track: {\n value: null,\n writable: true\n },\n isSubscribed: {\n enumerable: true,\n get: function get() {\n return !!this._track;\n }\n },\n isTrackEnabled: {\n enumerable: true,\n get: function get() {\n return signaling.isEnabled;\n }\n },\n kind: {\n enumerable: true,\n value: signaling.kind\n },\n publishPriority: {\n enumerable: true,\n get: function get() {\n return signaling.priority;\n }\n },\n track: {\n enumerable: true,\n get: function get() {\n return this._track;\n }\n }\n }); // remember original state, and fire events only on change.\n\n var error = signaling.error,\n isEnabled = signaling.isEnabled,\n isSwitchedOff = signaling.isSwitchedOff,\n priority = signaling.priority;\n signaling.on('updated', function () {\n if (error !== signaling.error) {\n error = signaling.error;\n\n _this.emit('subscriptionFailed', signaling.error);\n\n return;\n }\n\n if (isEnabled !== signaling.isEnabled) {\n isEnabled = signaling.isEnabled;\n\n if (_this.track) {\n _this.track._setEnabled(signaling.isEnabled);\n }\n\n _this.emit(signaling.isEnabled ? 'trackEnabled' : 'trackDisabled');\n }\n\n if (isSwitchedOff !== signaling.isSwitchedOff) {\n isSwitchedOff = signaling.isSwitchedOff;\n\n if (_this.track) {\n _this.track._setSwitchedOff(signaling.isSwitchedOff);\n\n _this.emit(signaling.isSwitchedOff ? 'trackSwitchedOff' : 'trackSwitchedOn', _this.track);\n }\n }\n\n if (priority !== signaling.priority) {\n priority = signaling.priority;\n\n _this.emit('publishPriorityChanged', priority);\n }\n });\n return _this;\n }\n\n _createClass(RemoteTrackPublication, [{\n key: 'toString',\n value: function toString() {\n return '[RemoteTrackPublication #' + this._instanceId + ': ' + this.trackSid + ']';\n }\n /**\n * @private\n * @param {RemoteTrack} track\n */\n\n }, {\n key: '_subscribed',\n value: function _subscribed(track) {\n if (!this._track && track) {\n this._track = track;\n this.emit('subscribed', track);\n }\n }\n /**\n * @private\n */\n\n }, {\n key: '_unsubscribe',\n value: function _unsubscribe() {\n if (this._track) {\n var track = this._track;\n this._track = null;\n this.emit('unsubscribed', track);\n }\n }\n }]);\n\n return RemoteTrackPublication;\n}(TrackPublication);\n/**\n * The {@link RemoteTrack}'s publish {@link Track.Priority} was changed by the\n * {@link RemoteParticipant}.\n * @param {Track.Priority} priority - the {@link RemoteTrack}'s new publish\n * {@link Track.Priority}; RemoteTrackPublication#publishPriority is also\n * updated accordingly\n * @event RemoteTrackPublication#publishPriorityChanged\n */\n\n/**\n * Your {@link LocalParticipant} subscribed to the {@link RemoteTrack}.\n * @param {RemoteTrack} track - the {@link RemoteTrack} that was subscribed to\n * @event RemoteTrackPublication#subscribed\n */\n\n/**\n * Your {@link LocalParticipant} failed to subscribe to the {@link RemoteTrack}.\n * @param {TwilioError} error - the reason the {@link RemoteTrack} could not be\n * subscribed to\n * @event RemoteTrackPublication#subscriptionFailed\n */\n\n/**\n * The {@link RemoteTrack} was disabled.\n * @event RemoteTrackPublication#trackDisabled\n */\n\n/**\n * The {@link RemoteTrack} was enabled.\n * @event RemoteTrackPublication#trackEnabled\n */\n\n/**\n * The {@link RemoteTrack} was switched off.\n * @param {RemoteTrack} track - the {@link RemoteTrack} that was switched off\n * @event RemoteTrackPublication#trackSwitchedOff\n */\n\n/**\n * The {@link RemoteTrack} was switched on.\n * @param {RemoteTrack} track - the {@link RemoteTrack} that was switched on\n * @event RemoteTrackPublication#trackSwitchedOn\n */\n\n/**\n * Your {@link LocalParticipant} unsubscribed from the {@link RemoteTrack}.\n * @param {RemoteTrack} track - the {@link RemoteTrack} that was unsubscribed from\n * @event RemoteTrackPublication#unsubscribed\n */\n\n/**\n * {@link RemoteTrackPublication} options\n * @typedef {object} RemoteTrackPublicationOptions\n * @property {LogLevel|LogLevels} logLevel - Log level for 'media' modules\n */\n\n\nmodule.exports = RemoteTrackPublication;","/*\n * Copyright (c) 2012 Mathieu Turcotte\n * Licensed under the MIT license.\n */\nmodule.exports = require('./lib/checks');","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar StateMachine = require('../statemachine');\n\nvar NetworkQualityStats = require('../stats/networkqualitystats');\n/*\nParticipantSignaling States\n----------------------\n\n +------------+ +-----------+ +--------------+\n | | | | | |\n | connecting |---->| connected |---->| disconnected |\n | | | | | |\n +------------+ +-----------+ +--------------+\n | ^ ^\n | | +--------------+ |\n | |--| | |\n |--->| reconnecting |--|\n | |\n +--------------+\n*/\n\n\nvar states = {\n connecting: ['connected'],\n connected: ['disconnected', 'reconnecting'],\n reconnecting: ['connected', 'disconnected'],\n disconnected: []\n};\n/**\n * A {@link Participant} implementation\n * @extends StateMachine\n * @property {?string} identity\n * @property {?Participant.SID} sid\n * @property {string} state - \"connecting\", \"connected\", or \"disconnected\"\n * @property {Map} tracks\n * @emits ParticipantSignaling#networkQualityLevelChanged\n * @emits ParticipantSignaling#trackAdded\n * @emits ParticipantSignaling#trackRemoved\n */\n\nvar ParticipantSignaling = function (_StateMachine) {\n _inherits(ParticipantSignaling, _StateMachine);\n /**\n * Construct a {@link ParticipantSignaling}.\n */\n\n\n function ParticipantSignaling() {\n _classCallCheck(this, ParticipantSignaling);\n\n var _this = _possibleConstructorReturn(this, (ParticipantSignaling.__proto__ || Object.getPrototypeOf(ParticipantSignaling)).call(this, 'connecting', states));\n\n Object.defineProperties(_this, {\n _enqueuedPriorityUpdates: {\n value: new Map()\n },\n _identity: {\n writable: true,\n value: null\n },\n _networkQualityLevel: {\n value: null,\n writable: true\n },\n _networkQualityStats: {\n value: null,\n writable: true\n },\n _sid: {\n writable: true,\n value: null\n },\n _trackPrioritySignaling: {\n value: null,\n writable: true\n },\n identity: {\n enumerable: true,\n get: function get() {\n return this._identity;\n }\n },\n sid: {\n enumerable: true,\n get: function get() {\n return this._sid;\n }\n },\n tracks: {\n enumerable: true,\n value: new Map()\n }\n });\n return _this;\n }\n /**\n * Get the current {@link NetworkQualityLevel}, if any.\n * @returns {?NetworkQualityLevel} networkQualityLevel - initially null\n */\n\n\n _createClass(ParticipantSignaling, [{\n key: 'addTrack',\n\n /**\n * Add the {@link TrackSignaling}, MediaStreamTrack, or\n * {@link DataTrackSender} to the {@link ParticipantSignaling}.\n * @param {TrackSignaling|DataTrackSender|MediaTrackSender} track\n * @returns {this}\n * @fires ParticipantSignaling#trackAdded\n */\n value: function addTrack(track) {\n this.tracks.set(track.id || track.sid, track);\n this.emit('trackAdded', track);\n return this;\n }\n /**\n * Disconnect the {@link ParticipantSignaling}.\n * @returns {boolean}\n */\n\n }, {\n key: 'disconnect',\n value: function disconnect() {\n if (this.state !== 'disconnected') {\n this.preempt('disconnected');\n return true;\n }\n\n return false;\n }\n /**\n * Remove the {@link TrackSignaling}, MediaStreamTrack, or\n * {@link DataTrackSender} from the {@link ParticipantSignaling}.\n * @param {TrackSignaling|DataTrackSender|MediaTrackSender} track\n * @returns {?TrackSignaling}\n * @fires ParticipantSignaling#trackRemoved\n */\n\n }, {\n key: 'removeTrack',\n value: function removeTrack(track) {\n var signaling = this.tracks.get(track.id || track.sid);\n this.tracks[\"delete\"](track.id || track.sid);\n\n if (signaling) {\n this.emit('trackRemoved', track);\n }\n\n return signaling || null;\n }\n /**\n * @param {NetworkQualityLevel} networkQualityLevel\n * @param {?NetworkQualityLevels} [networkQualityLevels=null]\n * @returns {void}\n */\n\n }, {\n key: 'setNetworkQualityLevel',\n value: function setNetworkQualityLevel(networkQualityLevel, networkQualityLevels) {\n if (this._networkQualityLevel !== networkQualityLevel) {\n this._networkQualityLevel = networkQualityLevel;\n this._networkQualityStats = networkQualityLevels && (networkQualityLevels.audio || networkQualityLevels.video) ? new NetworkQualityStats(networkQualityLevels) : null;\n this.emit('networkQualityLevelChanged');\n }\n }\n /**\n * updates the subscriber priority for the given track.\n * @param {Track.SID} trackSid\n * @param {?Track.Priority} priority\n * @returns {void}\n */\n\n }, {\n key: 'updateSubscriberTrackPriority',\n value: function updateSubscriberTrackPriority(trackSid, priority) {\n // note the most recent priority update for the track.\n this._enqueuedPriorityUpdates.set(trackSid, priority);\n\n if (this._trackPrioritySignaling) {\n this._trackPrioritySignaling.sendTrackPriorityUpdate(trackSid, 'subscribe', priority);\n }\n }\n /**\n * Set the {@link TrackPrioritySignaling}.\n * @param {TrackPrioritySignaling} trackPrioritySignaling\n * @returns {this}\n */\n\n }, {\n key: 'setTrackPrioritySignaling',\n value: function setTrackPrioritySignaling(trackPrioritySignaling) {\n var _this2 = this;\n\n this._trackPrioritySignaling = trackPrioritySignaling;\n\n if (trackPrioritySignaling) {\n this._enqueuedPriorityUpdates.forEach(function (priority, trackSid) {\n _this2._trackPrioritySignaling.sendTrackPriorityUpdate(trackSid, 'subscribe', priority);\n }); // NOTE(mpatwardhan)- we intentionally do not clear _enqueuedPriorityUpdates,\n // this cache will be used to re-send the priorities in case of VMS-FailOver.\n\n }\n\n return this;\n }\n /**\n * Connect the {@link ParticipantSignaling}.\n * @param {Participant.SID} sid\n * @param {string} identity\n * @returns {boolean}\n */\n\n }, {\n key: 'connect',\n value: function connect(sid, identity) {\n if (this.state === 'connecting' || this.state === 'reconnecting') {\n if (!this._sid) {\n this._sid = sid;\n }\n\n if (!this._identity) {\n this._identity = identity;\n }\n\n this.preempt('connected');\n return true;\n }\n\n return false;\n }\n /**\n * Transition to \"reconnecting\" state.\n * @returns {boolean}\n */\n\n }, {\n key: 'reconnecting',\n value: function reconnecting() {\n if (this.state === 'connecting' || this.state === 'connected') {\n this.preempt('reconnecting');\n return true;\n }\n\n return false;\n }\n }, {\n key: 'networkQualityLevel',\n get: function get() {\n return this._networkQualityLevel;\n }\n /**\n * Get the current {@link NetworkQualityStats}\n * @returns {?NetworkQualityStats} networkQualityStats - initially null\n */\n\n }, {\n key: 'networkQualityStats',\n get: function get() {\n return this._networkQualityStats;\n }\n }]);\n\n return ParticipantSignaling;\n}(StateMachine);\n/**\n * @event ParticipantSignaling#event:networkQualityLevelChanged\n */\n\n/**\n * {@link TrackSignaling} was added to the {@link ParticipantSignaling}.\n * @event ParticipantSignaling#trackAdded\n * @param {TrackSignaling} track\n */\n\n/**\n * {@link TrackSignaling} was removed from the {@link ParticipantSignaling}.\n * @event ParticipantSignaling#trackRemoved\n * @param {TrackSignaling} track\n */\n\n\nmodule.exports = ParticipantSignaling;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\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 var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type,\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm[\"delete\"](form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","exports.f = {}.propertyIsEnumerable;\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var af = moment.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split('_'),\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 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 isPM(input) {\n return /^nm$/i.test(input);\n },\n meridiem: function meridiem(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 ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de'); // Thanks to Joris Röling : https://github.com/jjupiter\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 pluralForm(n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function pluralize(u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\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 isPM(input) {\n return 'م' === input;\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var arDz = moment.defineLocale('ar-dz', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var arKw = moment.defineLocale('ar-kw', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 pluralForm(n) {\n return n === 0 ? 0 : n === 1 ? 1 : n === 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5;\n },\n plurals = {\n s: ['أقل من ثانية', 'ثانية واحدة', ['ثانيتان', 'ثانيتين'], '%d ثوان', '%d ثانية', '%d ثانية'],\n m: ['أقل من دقيقة', 'دقيقة واحدة', ['دقيقتان', 'دقيقتين'], '%d دقائق', '%d دقيقة', '%d دقيقة'],\n h: ['أقل من ساعة', 'ساعة واحدة', ['ساعتان', 'ساعتين'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['أقل من يوم', 'يوم واحد', ['يومان', 'يومين'], '%d أيام', '%d يومًا', '%d يوم'],\n M: ['أقل من شهر', 'شهر واحد', ['شهران', 'شهرين'], '%d أشهر', '%d شهرا', '%d شهر'],\n y: ['أقل من عام', 'عام واحد', ['عامان', 'عامين'], '%d أعوام', '%d عامًا', '%d عام']\n },\n pluralize = function pluralize(u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return str.replace(/%d/i, number);\n };\n },\n months = ['يناير', 'فبراير', 'مارس', 'أبريل', 'مايو', 'يونيو', 'يوليو', 'أغسطس', 'سبتمبر', 'أكتوبر', 'نوفمبر', 'ديسمبر'];\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 isPM(input) {\n return 'م' === input;\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var arMa = moment.defineLocale('ar-ma', {\n months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.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 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: 6,\n // 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 arMa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var arSa = moment.defineLocale('ar-sa', {\n months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.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 isPM(input) {\n return 'م' === input;\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 0,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var arTn = moment.defineLocale('ar-tn', {\n months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split('_'),\n monthsShort: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var az = moment.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split('_'),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split('_'),\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: 'birneçə 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 isPM(input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function meridiem(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 ordinal(number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\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\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 standalone: 'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split('_')\n },\n monthsShort: 'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),\n weekdays: {\n format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split('_'),\n standalone: 'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split('_'),\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 nextWeek() {\n return '[У] dddd [ў] LT';\n },\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[У мінулую] dddd [ў] LT';\n\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 isPM(input) {\n return /^(дня|вечара)$/.test(input);\n },\n meridiem: function meridiem(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 ordinal(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) && number % 100 !== 12 && number % 100 !== 13 ? number + '-і' : number + '-ы';\n\n case 'D':\n return number + '-га';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var bg = moment.defineLocale('bg', {\n months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split('_'),\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 lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[В изминалата] dddd [в] LT';\n\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 ordinal(number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var bn = moment.defineLocale('bn', {\n months: 'জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split('_'),\n monthsShort: 'জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে'.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 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 preparse(string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'রাত' && hour >= 4 || meridiem === 'দুপুর' && hour < 5 || meridiem === 'বিকাল') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var bo = moment.defineLocale('bo', {\n months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split('_'),\n monthsShort: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.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 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 preparse(string) {\n return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'མཚན་མོ' && hour >= 4 || meridiem === 'ཉིན་གུང' && hour < 5 || meridiem === 'དགོང་དག') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\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\n default:\n return number + ' vloaz';\n }\n }\n\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n\n return number;\n }\n\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n\n return text;\n }\n\n function softMutation(text) {\n var mutationTable = {\n 'm': 'v',\n 'b': 'v',\n 'd': 'z'\n };\n\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n\n return mutationTable[text.charAt(0)] + text.substring(1);\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 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 weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h[e]mm A',\n LTS: 'h[e]mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY h[e]mm A',\n LLLL: 'dddd, D [a viz] MMMM YYYY h[e]mm A'\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 ordinal(number) {\n var output = number === 1 ? 'añ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1,\n // 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 br;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\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\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\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\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\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\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\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\n return result;\n\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\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 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\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 nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\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 lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n\n case 6:\n return '[prošle] [subote] [u] LT';\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ca = moment.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\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 isFormat: /D[oD]?(\\s)+MMMM/\n },\n monthsShort: 'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\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 sameDay() {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function nextDay() {\n return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [passat a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\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 ordinal(number, period) {\n var output = number === 1 ? 'r' : number === 2 ? 'n' : number === 3 ? 'r' : number === 4 ? 't' : 'è';\n\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split('_'),\n monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_');\n var monthsParse = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i]; // 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\n var monthsRegex = /^(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\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';\n\n case 'ss':\n // 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\n break;\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n\n case 'mm':\n // 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\n break;\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 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\n break;\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n\n case 'dd':\n // 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\n break;\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';\n\n case 'MM':\n // 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\n break;\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n\n case 'yy':\n // 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 break;\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: /^(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: /^(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 nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n\n case 3:\n return '[ve středu v] LT';\n\n case 4:\n return '[ve čtvrtek v] LT';\n\n case 5:\n return '[v pátek v] LT';\n\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n\n case 3:\n return '[minulou středu v] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var cv = moment.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split('_'),\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: '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 future(output) {\n var affix = /сехет$/i.exec(output) ? 'рен' : /ҫул$/i.exec(output) ? 'тан' : 'ран';\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var cy = moment.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split('_'),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split('_'),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split('_'),\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 ordinal(number) {\n var b = number,\n output = '',\n lookup = ['', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed\n 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed\n ];\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\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var da = moment.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 '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 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 '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 monthsShort: 'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 '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 monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['ޖެނުއަރީ', 'ފެބްރުއަރީ', 'މާރިޗު', 'އޭޕްރީލު', 'މޭ', 'ޖޫން', 'ޖުލައި', 'އޯގަސްޓު', 'ސެޕްޓެމްބަރު', 'އޮކްޓޯބަރު', 'ނޮވެމްބަރު', 'ޑިސެމްބަރު'],\n weekdays = ['އާދިއްތަ', 'ހޯމަ', 'އަންގާރަ', 'ބުދަ', 'ބުރާސްފަތި', 'ހުކުރު', 'ހޮނިހިރު'];\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 isPM(input) {\n return 'މފ' === input;\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n var el = moment.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split('_'),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split('_'),\n months: function months(momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (typeof format === 'string' && /D/.test(format.substring(0, format.indexOf('MMMM')))) {\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 weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function isPM(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 lastWeek() {\n switch (this.day()) {\n case 6:\n return '[το προηγούμενο] dddd [{}] LT';\n\n default:\n return '[την προηγούμενη] dddd [{}] LT';\n }\n },\n sameElse: 'L'\n },\n calendar: function calendar(key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n\n if (isFunction(output)) {\n output = output.apply(mom);\n }\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enSG = moment.defineLocale('en-SG', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enAu = moment.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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 enAu;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enCa = moment.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enCa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enGb = moment.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enIe = moment.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enIl = moment.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n }\n });\n return enIl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var enNz = moment.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\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 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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var eo = moment.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aŭg_sep_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: 'D[-a de] MMMM, YYYY',\n LLL: 'D[-a de] MMMM, YYYY HH:mm',\n LLLL: 'dddd, [la] D[-a de] MMMM, YYYY HH:mm'\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function isPM(input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function meridiem(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 [je] LT',\n lastDay: '[Hieraŭ je] LT',\n lastWeek: '[pasinta] dddd [je] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaŭ %s',\n s: 'sekundoj',\n ss: '%d sekundoj',\n m: 'minuto',\n mm: '%d minutoj',\n h: 'horo',\n hh: '%d horoj',\n d: 'tago',\n //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'monato',\n MM: '%d monatoj',\n y: 'jaro',\n yy: '%d jaroj'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(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 var es = moment.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(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: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(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 sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\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 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,\n // 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 es;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(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 var esDo = moment.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(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: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(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 sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n _monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\n var monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\n var monthsRegex = /^(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 var esUs = moment.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort: function monthsShort(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: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(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 sameDay() {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function lastDay() {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[el] dddd [pasado a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\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 monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var eu = moment.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split('_'),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split('_'),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var fa = moment.defineLocale('fa', {\n months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n monthsShort: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),\n weekdays: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".split('_'),\n weekdaysShort: \"\\u06CC\\u06A9\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062F\\u0648\\u0634\\u0646\\u0628\\u0647_\\u0633\\u0647\\u200C\\u0634\\u0646\\u0628\\u0647_\\u0686\\u0647\\u0627\\u0631\\u0634\\u0646\\u0628\\u0647_\\u067E\\u0646\\u062C\\u200C\\u0634\\u0646\\u0628\\u0647_\\u062C\\u0645\\u0639\\u0647_\\u0634\\u0646\\u0628\\u0647\".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 isPM(input) {\n return /بعد از ظهر/.test(input);\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/[۰-۹]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}م/,\n ordinal: '%dم',\n week: {\n dow: 6,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden', numbersPast[7], numbersPast[8], numbersPast[9]];\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = '';\n\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n\n function verbalNumber(number, isFuture) {\n return number < 10 ? isFuture ? numbersFuture[number] : numbersPast[number] : 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 monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var fo = moment.defineLocale('fo', {\n months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\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|)/,\n ordinal: function ordinal(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 // Words with masculine grammatical gender: mois, trimestre, jour\n\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\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 ordinal(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 // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n }\n });\n return frCa;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\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 ordinal(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 // Words with feminine grammatical gender: semaine\n\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');\n var fy = moment.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split('_'),\n monthsShort: function monthsShort(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 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 ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['Eanáir', 'Feabhra', 'Márta', 'Aibreán', 'Bealtaine', 'Méitheamh', 'Iúil', 'Lúnasa', 'Meán Fómhair', 'Deaireadh Fómhair', 'Samhain', 'Nollaig'];\n var monthsShort = ['Eaná', 'Feab', 'Márt', 'Aibr', 'Beal', 'Méit', 'Iúil', 'Lúna', 'Meán', 'Deai', 'Samh', 'Noll'];\n var weekdays = ['Dé Domhnaigh', 'Dé Luain', 'Dé Máirt', 'Dé Céadaoin', 'Déardaoin', 'Dé hAoine', 'Dé Satharn'];\n var weekdaysShort = ['Dom', 'Lua', 'Mái', 'Céa', 'Déa', 'hAo', 'Sat'];\n var weekdaysMin = ['Do', 'Lu', 'Má', 'Ce', 'Dé', 'hA', 'Sa'];\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é aig] 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í',\n y: 'bliain',\n yy: '%d bliain'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['Am Faoilleach', 'An Gearran', 'Am Màrt', 'An Giblean', 'An Cèitean', 'An t-Ògmhios', 'An t-Iuchar', 'An Lùnastal', 'An t-Sultain', 'An Dàmhair', 'An t-Samhain', 'An Dùbhlachd'];\n var monthsShort = ['Faoi', 'Gear', 'Màrt', 'Gibl', 'Cèit', 'Ògmh', 'Iuch', 'Lùn', 'Sult', 'Dàmh', 'Samh', 'Dùbh'];\n var weekdays = ['Didòmhnaich', 'Diluain', 'Dimàirt', 'Diciadain', 'Diardaoin', 'Dihaoine', 'Disathairne'];\n var weekdaysShort = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'];\n var weekdaysMin = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];\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 ordinal(number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var gl = moment.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort: 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\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 sameDay() {\n return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextDay: function nextDay() {\n return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';\n },\n nextWeek: function nextWeek() {\n return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n lastDay: function lastDay() {\n return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';\n },\n lastWeek: function lastWeek() {\n return '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n 's': ['thodde secondanim', 'thodde second'],\n 'ss': [number + ' secondanim', number + ' second'],\n 'm': ['eka mintan', 'ek minute'],\n 'mm': [number + ' mintanim', number + ' mintam'],\n 'h': ['eka voran', 'ek vor'],\n 'hh': [number + ' voranim', number + ' voram'],\n 'd': ['eka disan', 'ek dis'],\n 'dd': [number + ' disanim', number + ' dis'],\n 'M': ['eka mhoinean', 'ek mhoino'],\n 'MM': [number + ' mhoineanim', number + ' mhoine'],\n 'y': ['eka vorsan', 'ek voros'],\n 'yy': [number + ' vorsanim', number + ' vorsam']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n var gomLatn = moment.defineLocale('gom-latn', {\n months: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split('_'),\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Aitar_Somar_Mongllar_Budvar_Brestar_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[achea] 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: '[Ieta to] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fatlo] 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 ordinal(number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n\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: 1,\n // 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 meridiemParse: /rati|sokalli|donparam|sanje/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokalli') {\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 meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokalli';\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 return gomLatn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var gu = moment.defineLocale('gu', {\n months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split('_'),\n monthsShort: 'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split('_'),\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: 'અમુક પળો',\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 preparse(string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var he = moment.defineLocale('he', {\n months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split('_'),\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: '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 hh(number) {\n if (number === 2) {\n return 'שעתיים';\n }\n\n return number + ' שעות';\n },\n d: 'יום',\n dd: function dd(number) {\n if (number === 2) {\n return 'יומיים';\n }\n\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function MM(number) {\n if (number === 2) {\n return 'חודשיים';\n }\n\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function yy(number) {\n if (number === 2) {\n return 'שנתיים';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n\n return number + ' שנים';\n }\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,\n isPM: function isPM(input) {\n return /^(אחה\"צ|אחרי הצהריים|בערב)$/.test(input);\n },\n meridiem: function meridiem(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 return he;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var hi = moment.defineLocale('hi', {\n months: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split('_'),\n monthsShort: 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),\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: 'कुछ ही क्षण',\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 preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\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\n return result;\n\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n\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\n return result;\n\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n\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\n return result;\n\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n\n return result;\n\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\n return result;\n\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\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 standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split('_')\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split('_'),\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 nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\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 lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n return '[prošlu] dddd [u] LT';\n\n case 6:\n return '[prošle] [subote] [u] LT';\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\n\n function translate(number, withoutSuffix, key, isFuture) {\n var num = number;\n\n switch (key) {\n case 's':\n return isFuture || withoutSuffix ? 'néhány másodperc' : 'néhány másodperce';\n\n case 'ss':\n return num + (isFuture || withoutSuffix) ? ' másodperc' : ' másodperce';\n\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n\n return '';\n }\n\n function week(isFuture) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';\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 monthsShort: 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\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 isPM(input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function meridiem(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 nextWeek() {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function lastWeek() {\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var hyAm = moment.defineLocale('hy-am', {\n months: {\n format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_'),\n standalone: 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_')\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: 'dddd, D MMMM YYYY թ., HH:mm'\n },\n calendar: {\n sameDay: '[այսօր] LT',\n nextDay: '[վաղը] LT',\n lastDay: '[երեկ] LT',\n nextWeek: function nextWeek() {\n return 'dddd [օրը ժամը] LT';\n },\n lastWeek: function lastWeek() {\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 isPM(input) {\n return /^(ցերեկվա|երեկոյան)$/.test(input);\n },\n meridiem: function meridiem(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 ordinal(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\n return number + '-րդ';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var id = moment.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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: 1,\n // 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 id;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n\n return true;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';\n\n case 'ss':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum');\n }\n\n return result + 'sekúnda';\n\n case 'm':\n return withoutSuffix ? 'mínúta' : 'mínútu';\n\n case 'mm':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');\n } else if (withoutSuffix) {\n return result + 'mínúta';\n }\n\n return result + 'mínútu';\n\n case 'hh':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');\n }\n\n return result + 'klukkustund';\n\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n\n return isFuture ? 'dag' : 'degi';\n\n case 'dd':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n\n return result + (isFuture ? 'daga' : 'dögum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n\n return result + (isFuture ? 'dag' : 'degi');\n\n case 'M':\n if (withoutSuffix) {\n return 'mánuður';\n }\n\n return isFuture ? 'mánuð' : 'mánuði';\n\n case 'MM':\n if (plural(number)) {\n if (withoutSuffix) {\n return result + 'mánuðir';\n }\n\n return result + (isFuture ? 'mánuði' : 'mánuðum');\n } else if (withoutSuffix) {\n return result + 'mánuður';\n }\n\n return result + (isFuture ? 'mánuð' : 'mánuði');\n\n case 'y':\n return withoutSuffix || isFuture ? 'ár' : 'ári';\n\n case 'yy':\n if (plural(number)) {\n return result + (withoutSuffix || isFuture ? 'ár' : 'árum');\n }\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 monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var it = moment.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\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 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 lastWeek() {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var itCh = moment.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\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 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 lastWeek() {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ja = moment.defineLocale('ja', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\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 isPM(input) {\n return input === '午後';\n },\n meridiem: function meridiem(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 nextWeek(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 lastWeek(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 ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\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 return ja;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var jv = moment.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ka = moment.defineLocale('ka', {\n months: {\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')\n },\n monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays: {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.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: '[დღეს] LT[-ზე]',\n nextDay: '[ხვალ] LT[-ზე]',\n lastDay: '[გუშინ] LT[-ზე]',\n nextWeek: '[შემდეგ] dddd LT[-ზე]',\n lastWeek: '[წინა] dddd LT-ზე',\n sameElse: 'L'\n },\n relativeTime: {\n future: function future(s) {\n return /(წამი|წუთი|საათი|წელი)/.test(s) ? s.replace(/ი$/, 'ში') : s + 'ში';\n },\n past: function past(s) {\n if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {\n return s.replace(/(ი|ე)$/, 'ის წინ');\n }\n\n if (/წელი/.test(s)) {\n return s.replace(/წელი$/, 'წლის წინ');\n }\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 ordinal(number) {\n if (number === 0) {\n return number;\n }\n\n if (number === 1) {\n return number + '-ლი';\n }\n\n if (number < 20 || number <= 100 && number % 20 === 0 || number % 100 === 0) {\n return 'მე-' + number;\n }\n\n return number + '-ე';\n },\n week: {\n dow: 1,\n doy: 7\n }\n });\n return ka;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var kk = moment.defineLocale('kk', {\n months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split('_'),\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: '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 ordinal(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var km = moment.defineLocale('km', {\n months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split('_'),\n monthsShort: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.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 isPM(input) {\n return input === 'ល្ងាច';\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var kn = moment.defineLocale('kn', {\n months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split('_'),\n monthsShort: 'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split('_'),\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: 'ಕೆಲವು ಕ್ಷಣಗಳು',\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 preparse(string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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 ordinal(number) {\n return number + 'ನೇ';\n },\n week: {\n dow: 0,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 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 ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '일';\n\n case 'M':\n return number + '월';\n\n case 'w':\n case 'W':\n return number + '주';\n\n default:\n return number;\n }\n },\n meridiemParse: /오전|오후/,\n isPM: function isPM(token) {\n return token === '오후';\n },\n meridiem: function meridiem(hour, minute, isUpper) {\n return hour < 12 ? '오전' : '오후';\n }\n });\n return ko;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var ku = moment.defineLocale('ku', {\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: '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 isPM(input) {\n return /ئێواره‌/.test(input);\n },\n meridiem: function meridiem(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 preparse(string) {\n return string.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, '،');\n },\n week: {\n dow: 6,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var ky = moment.defineLocale('ky', {\n months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),\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: '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 ordinal(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n\n return 'an ' + string;\n }\n\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\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\n\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n\n if (isNaN(number)) {\n return false;\n }\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\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\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\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 monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),\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 lastWeek() {\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\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var lo = moment.defineLocale('lo', {\n months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split('_'),\n monthsShort: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.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 isPM(input) {\n return input === 'ຕອນແລງ';\n },\n meridiem: function meridiem(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 ordinal(number) {\n return 'ທີ່' + number;\n }\n });\n return lo;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\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\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n }\n\n function special(number) {\n return number % 10 === 0 || number > 10 && number < 20;\n }\n\n function forms(key) {\n return units[key].split('_');\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n if (number === 1) {\n return result + translateSingular(number, withoutSuffix, key[0], isFuture);\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\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 standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split('_'),\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 standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split('_'),\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 ordinal(number) {\n return number + '-oji';\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\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\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n return number + ' ' + format(units[key], number, withoutSuffix);\n }\n\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format(units[key], number, withoutSuffix);\n }\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 monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\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 monthsShort: '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 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 nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n\n case 3:\n return '[u] [srijedu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\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 lastWeek() {\n var lastWeekDays = ['[prošle] [nedjelje] [u] LT', '[prošlog] [ponedjeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srijede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var mk = moment.defineLocale('mk', {\n months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split('_'),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),\n weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split('_'),\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 lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Изминатата] dddd [во] LT';\n\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 ordinal(number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ml = moment.defineLocale('ml', {\n months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split('_'),\n monthsShort: 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split('_'),\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: 'അൽപ നിമിഷങ്ങൾ',\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'രാത്രി' && hour >= 4 || meridiem === 'ഉച്ച കഴിഞ്ഞ്' || meridiem === 'വൈകുന്നേരം') {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function meridiem(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 return ml;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function translate(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';\n\n case 'ss':\n return number + (withoutSuffix ? ' секунд' : ' секундын');\n\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' минут' : ' минутын');\n\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өдөр' : ' өдрийн');\n\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n\n default:\n return number;\n }\n }\n\n var mn = moment.defineLocale('mn', {\n months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split('_'),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split('_'),\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 isPM(input) {\n return input === 'ҮХ';\n },\n meridiem: function meridiem(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 ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өдөр';\n\n default:\n return number;\n }\n }\n });\n return mn;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'काही सेकंद';\n break;\n\n case 'ss':\n output = '%d सेकंद';\n break;\n\n case 'm':\n output = 'एक मिनिट';\n break;\n\n case 'mm':\n output = '%d मिनिटे';\n break;\n\n case 'h':\n output = 'एक तास';\n break;\n\n case 'hh':\n output = '%d तास';\n break;\n\n case 'd':\n output = 'एक दिवस';\n break;\n\n case 'dd':\n output = '%d दिवस';\n break;\n\n case 'M':\n output = 'एक महिना';\n break;\n\n case 'MM':\n output = '%d महिने';\n break;\n\n case 'y':\n output = 'एक वर्ष';\n break;\n\n case 'yy':\n output = '%d वर्षे';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'काही सेकंदां';\n break;\n\n case 'ss':\n output = '%d सेकंदां';\n break;\n\n case 'm':\n output = 'एका मिनिटा';\n break;\n\n case 'mm':\n output = '%d मिनिटां';\n break;\n\n case 'h':\n output = 'एका तासा';\n break;\n\n case 'hh':\n output = '%d तासां';\n break;\n\n case 'd':\n output = 'एका दिवसा';\n break;\n\n case 'dd':\n output = '%d दिवसां';\n break;\n\n case 'M':\n output = 'एका महिन्या';\n break;\n\n case 'MM':\n output = '%d महिन्यां';\n break;\n\n case 'y':\n output = 'एका वर्षा';\n break;\n\n case 'yy':\n output = '%d वर्षां';\n break;\n }\n }\n\n return output.replace(/%d/i, number);\n }\n\n var mr = moment.defineLocale('mr', {\n months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split('_'),\n monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split('_'),\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 preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ms = moment.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var msMy = moment.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var mt = moment.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split('_'),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var my = moment.defineLocale('my', {\n months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split('_'),\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: '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 preparse(string) {\n return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var nb = moment.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_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: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var ne = moment.defineLocale('ne', {\n months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split('_'),\n monthsShort: 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split('_'),\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, D MMMM YYYY, Aको h:mm बजे'\n },\n preparse: function preparse(string) {\n return string.replace(/[१२३४५६७८९०]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n meridiemParse: /राति|बिहान|दिउँसो|साँझ/,\n meridiemHour: function meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(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 var nl = moment.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(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 monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: '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 ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n var monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\n var monthsRegex = /^(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 var nlBe = moment.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort: function monthsShort(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 monthsRegex: monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: '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 ordinal(number) {\n return number + (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de');\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var nn = moment.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'sun_mån_tys_ons_tor_fre_lau'.split('_'),\n weekdaysMin: 'su_må_ty_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 [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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 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 monthsShort: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.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 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 preparse(string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split('_'),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split('_');\n\n function plural(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n\n switch (key) {\n case 'ss':\n return result + (plural(number) ? 'sekundy' : 'sekund');\n\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n\n case 'mm':\n return result + (plural(number) ? 'minuty' : 'minut');\n\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n\n case 'hh':\n return result + (plural(number) ? 'godziny' : 'godzin');\n\n case 'MM':\n return result + (plural(number) ? 'miesiące' : 'miesięcy');\n\n case 'yy':\n return result + (plural(number) ? 'lata' : 'lat');\n }\n }\n\n var pl = moment.defineLocale('pl', {\n months: function months(momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[momentToFormat.month()] + '|' + monthsNominative[momentToFormat.month()] + ')';\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 weekdays: '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 nextWeek() {\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 lastWeek() {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n\n case 3:\n return '[W zeszłą środę o] LT';\n\n case 6:\n return '[W zeszłą sobotę o] LT';\n\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var pt = moment.defineLocale('pt', {\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\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 lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Ú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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\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 lastWeek() {\n return this.day() === 0 || this.day() === 6 ? '[Ú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 });\n return ptBr;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': 'secunde',\n 'mm': 'minute',\n 'hh': 'ore',\n 'dd': 'zile',\n 'MM': 'luni',\n 'yy': 'ani'\n },\n separator = ' ';\n\n if (number % 100 >= 20 || number >= 100 && number % 100 === 0) {\n separator = ' de ';\n }\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 monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\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 M: 'o lună',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\n\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n 'ss': withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',\n 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',\n 'hh': 'час_часа_часов',\n 'dd': 'день_дня_дней',\n 'MM': 'месяц_месяца_месяцев',\n 'yy': 'год_года_лет'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'минута' : 'минуту';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n var monthsParse = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; // 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\n var ru = moment.defineLocale('ru', {\n months: {\n format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_'),\n standalone: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"июл.\" и \"июн.\", но какой смысл менять букву на точку ?\n format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split('_'),\n standalone: 'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),\n format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_'),\n isFormat: /\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки\n monthsRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // копия предыдущего\n monthsShortRegex: /^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,\n // полные названия с падежами\n monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,\n // Выражение, которое соотвествует только сокращённым формам\n monthsShortStrictRegex: /^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/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 nextWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В следующее] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В следующий] dddd, [в] LT';\n\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 lastWeek(now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[В прошлое] dddd, [в] LT';\n\n case 1:\n case 2:\n case 4:\n return '[В прошлый] dddd, [в] LT';\n\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 M: 'месяц',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ночи|утра|дня|вечера/i,\n isPM: function isPM(input) {\n return /^(дня|вечера)$/.test(input);\n },\n meridiem: function meridiem(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 ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n case 'w':\n case 'W':\n return number + '-я';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['جنوري', 'فيبروري', 'مارچ', 'اپريل', 'مئي', 'جون', 'جولاءِ', 'آگسٽ', 'سيپٽمبر', 'آڪٽوبر', 'نومبر', 'ڊسمبر'];\n var days = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];\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 isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\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 preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),\n weekdays: 'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n /*jshint -W100*/\n\n var si = moment.defineLocale('si', {\n months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split('_'),\n monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split('_'),\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: '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 ordinal(number) {\n return number + ' වැනි';\n },\n meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,\n isPM: function isPM(input) {\n return input === 'ප.ව.' || input === 'පස් වරු';\n },\n meridiem: function meridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ප.ව.' : 'පස් වරු';\n } else {\n return isLower ? 'පෙ.ව.' : 'පෙර වරු';\n }\n }\n });\n return si;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'),\n monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\n function plural(n) {\n return n > 1 && n < 5;\n }\n\n function translate(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';\n\n case 'ss':\n // 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\n break;\n\n case 'm':\n // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';\n\n case 'mm':\n // 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\n break;\n\n case 'h':\n // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n\n case 'hh':\n // 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\n break;\n\n case 'd':\n // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n\n case 'dd':\n // 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\n break;\n\n case 'M':\n // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n\n case 'MM':\n // 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\n break;\n\n case 'y':\n // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n\n case 'yy':\n // 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 break;\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 nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n\n case 3:\n return '[v stredu o] LT';\n\n case 4:\n return '[vo štvrtok o] LT';\n\n case 5:\n return '[v piatok o] LT';\n\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function lastWeek() {\n switch (this.day()) {\n case 0:\n return '[minulú nedeľu o] LT';\n\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n\n case 3:\n return '[minulú stredu o] LT';\n\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n\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\n return result;\n\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n\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\n return result;\n\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n\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\n return result;\n\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n\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\n return result;\n\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n\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\n return result;\n\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n\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\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 monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\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 nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n\n case 3:\n return '[v] [sredo] [ob] LT';\n\n case 6:\n return '[v] [soboto] [ob] LT';\n\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 lastWeek() {\n switch (this.day()) {\n case 0:\n return '[prejšnjo] [nedeljo] [ob] LT';\n\n case 3:\n return '[prejšnjo] [sredo] [ob] LT';\n\n case 6:\n return '[prejšnjo] [soboto] [ob] LT';\n\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sq = moment.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\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 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 isPM(input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\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 monthsShort: '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 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: '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 nextWeek() {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n\n case 3:\n return '[u] [sredu] [u] LT';\n\n case 6:\n return '[u] [subotu] [u] LT';\n\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 lastWeek() {\n var lastWeekDays = ['[prošle] [nedelje] [u] LT', '[prošlog] [ponedeljka] [u] LT', '[prošlog] [utorka] [u] LT', '[prošle] [srede] [u] LT', '[prošlog] [četvrtka] [u] LT', '[prošlog] [petka] [u] LT', '[prošle] [subote] [u] LT'];\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: 'dan',\n dd: translator.translate,\n M: 'mesec',\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['секунда', 'секунде', 'секунди'],\n m: ['један минут', 'једне минуте'],\n mm: ['минут', 'минуте', 'минута'],\n h: ['један сат', 'једног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['дан', 'дана', 'дана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['година', 'године', 'година']\n },\n correctGrammaticalCase: function correctGrammaticalCase(number, wordKey) {\n return number === 1 ? wordKey[0] : number >= 2 && number <= 4 ? wordKey[1] : wordKey[2];\n },\n translate: function translate(number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return number + ' ' + translator.correctGrammaticalCase(number, wordKey);\n }\n }\n };\n var srCyrl = moment.defineLocale('sr-cyrl', {\n months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split('_'),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.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: '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 nextWeek: function nextWeek() {\n switch (this.day()) {\n case 0:\n return '[у] [недељу] [у] LT';\n\n case 3:\n return '[у] [среду] [у] LT';\n\n case 6:\n return '[у] [суботу] [у] LT';\n\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[јуче у] LT',\n lastWeek: function lastWeek() {\n var lastWeekDays = ['[прошле] [недеље] [у] LT', '[прошлог] [понедељка] [у] LT', '[прошлог] [уторка] [у] LT', '[прошле] [среде] [у] LT', '[прошлог] [четвртка] [у] LT', '[прошлог] [петка] [у] LT', '[прошле] [суботе] [у] LT'];\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: 'дан',\n dd: translator.translate,\n M: 'месец',\n MM: translator.translate,\n y: 'годину',\n yy: translator.translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1,\n // 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 srCyrl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ss = moment.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split('_'),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split('_'),\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 meridiem(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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sv = moment.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'e' : b === 1 ? 'a' : b === 2 ? 'a' : b === 3 ? 'e' : 'e';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var sw = moment.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split('_'),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split('_'),\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',\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: 'masiku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d'\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var ta = moment.defineLocale('ta', {\n months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split('_'),\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: '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 ordinal(number) {\n return number + 'வது';\n },\n preparse: function preparse(string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat: function postformat(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 meridiem(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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var te = moment.defineLocale('te', {\n months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split('_'),\n monthsShort: 'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split('_'),\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: 'కొన్ని క్షణాలు',\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tet = moment.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split('_'),\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: 'minutu balun',\n ss: 'minutu %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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 var tg = moment.defineLocale('tg', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\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: '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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(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 ordinal(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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var th = moment.defineLocale('th', {\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'),\n // 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 isPM(input) {\n return input === 'หลังเที่ยง';\n },\n meridiem: function meridiem(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 });\n return th;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tlPh = moment.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split('_'),\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 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 ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'leS' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'waQ' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'nem' : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time = output.indexOf('jaj') !== -1 ? time.slice(0, -3) + 'Hu’' : output.indexOf('jar') !== -1 ? time.slice(0, -3) + 'wen' : output.indexOf('DIS') !== -1 ? time.slice(0, -3) + 'ben' : time + ' ret';\n return time;\n }\n\n function translate(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n\n case 'mm':\n return numberNoun + ' tup';\n\n case 'hh':\n return numberNoun + ' rep';\n\n case 'dd':\n return numberNoun + ' jaj';\n\n case 'MM':\n return numberNoun + ' jar';\n\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\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\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 monthsShort: '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 monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),\n weekdaysMin: '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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 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 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 weekdaysShort: 'Paz_Pts_Sal_Çar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.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 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 M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n\n default:\n if (number === 0) {\n // special case for zero\n return number + '\\'ıncı';\n }\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict'; // 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\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 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 isPM(input) {\n return 'd\\'o' === input.toLowerCase();\n },\n meridiem: function meridiem(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,\n // 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\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 ? format[key][0] : withoutSuffix ? format[key][0] : format[key][1];\n }\n\n return tzl;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var tzm = moment.defineLocale('tzm', {\n months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split('_'),\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: '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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js language configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var ugCn = moment.defineLocale('ug-cn', {\n months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split('_'),\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: '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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n\n if (meridiem === 'يېرىم كېچە' || meridiem === 'سەھەر' || meridiem === 'چۈشتىن بۇرۇن') {\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 meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\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 dayOfMonthOrdinalParse: /\\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-كۈنى';\n\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n\n default:\n return number;\n }\n },\n preparse: function preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2];\n }\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\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 function weekdaysCaseReplace(m, format) {\n var weekdays = {\n 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (m === true) {\n return weekdays['nominative'].slice(1, 7).concat(weekdays['nominative'].slice(0, 1));\n }\n\n if (!m) {\n return weekdays['nominative'];\n }\n\n var nounCase = /(\\[[ВвУу]\\]) ?dddd/.test(format) ? 'accusative' : /\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(format) ? 'genitive' : 'nominative';\n return weekdays[nounCase][m.day()];\n }\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 'standalone': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\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 lastWeek() {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [').call(this);\n\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 isPM(input) {\n return /^(дня|вечора)$/.test(input);\n },\n meridiem: function meridiem(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 ordinal(number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n\n case 'D':\n return number + '-го';\n\n default:\n return number;\n }\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var months = ['جنوری', 'فروری', 'مارچ', 'اپریل', 'مئی', 'جون', 'جولائی', 'اگست', 'ستمبر', 'اکتوبر', 'نومبر', 'دسمبر'];\n var days = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\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 isPM(input) {\n return 'شام' === input;\n },\n meridiem: function meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'صبح';\n }\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 preparse(string) {\n return string.replace(/،/g, ',');\n },\n postformat: function postformat(string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var uz = moment.defineLocale('uz', {\n months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var uzLatn = moment.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split('_'),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split('_'),\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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\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 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 isPM(input) {\n return /^ch$/i.test(input);\n },\n meridiem: function meridiem(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 rồi 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 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 ordinal(number) {\n return number;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 monthsShort: 'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.split('_'),\n monthsParseExact: true,\n weekdays: 'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split('_'),\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 ordinal(number) {\n var b = number % 10,\n output = ~~(number % 100 / 10) === 1 ? 'th' : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n return number + output;\n },\n week: {\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\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 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,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhCn = moment.defineLocale('zh-cn', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\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: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|周)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '周';\n\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 week: {\n // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效\n dow: 1,\n // 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});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhHk = moment.defineLocale('zh-hk', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\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: '[下]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(日|月|週)/,\n ordinal: function ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\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 return zhHk;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n//! moment.js locale configuration\n;\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' && typeof require === 'function' ? factory(require('../moment')) : typeof define === 'function' && define.amd ? define(['../moment'], factory) : factory(global.moment);\n})(this, function (moment) {\n 'use strict';\n\n var zhTw = moment.defineLocale('zh-tw', {\n months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\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 meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\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 meridiem(hour, minute, isLower) {\n var hm = hour * 100 + minute;\n\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 ordinal(number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '日';\n\n case 'M':\n return number + '月';\n\n case 'w':\n case 'W':\n return number + '週';\n\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 return zhTw;\n});","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MediaTrack = require('./mediatrack');\n/**\n * An {@link AudioTrack} is a {@link Track} representing audio.\n * @extends Track\n * @property {boolean} isStarted - Whether or not the {@link AudioTrack} has\n * started; if the {@link AudioTrack} started, there is enough audio data to\n * begin playback\n * @property {boolean} isEnabled - Whether or not the {@link AudioTrack} is\n * enabled; if the {@link AudioTrack} is not enabled, it is \"muted\"\n * @property {Track.Kind} kind - \"audio\"\n * @property {MediaStreamTrack} mediaStreamTrack - An audio MediaStreamTrack\n * @emits AudioTrack#disabled\n * @emits AudioTrack#enabled\n * @emits AudioTrack#started\n */\n\n\nvar AudioTrack = function (_MediaTrack) {\n _inherits(AudioTrack, _MediaTrack);\n /**\n * Construct an {@link AudioTrack}.\n * @param {MediaTrackTransceiver} mediaTrackTransceiver\n * @param {{log: Log}} options\n */\n\n\n function AudioTrack(mediaTrackTransceiver, options) {\n _classCallCheck(this, AudioTrack);\n\n return _possibleConstructorReturn(this, (AudioTrack.__proto__ || Object.getPrototypeOf(AudioTrack)).call(this, mediaTrackTransceiver, options));\n }\n /**\n * @private\n */\n\n\n _createClass(AudioTrack, [{\n key: '_start',\n value: function _start() {\n _get(AudioTrack.prototype.__proto__ || Object.getPrototypeOf(AudioTrack.prototype), '_start', this).call(this);\n\n if (this._dummyEl) {\n this._detachElement(this._dummyEl);\n }\n }\n /**\n * Create an HTMLAudioElement and attach the {@link AudioTrack} to it.\n *\n * The HTMLAudioElement's srcObject will be set to a new\n * MediaStream containing the {@link AudioTrack}'s MediaStreamTrack.\n *\n * @returns {HTMLAudioElement} audioElement\n * @example\n * const Video = require('twilio-video');\n *\n * Video.createLocalAudioTrack().then(function(audioTrack) {\n * const audioElement = audioTrack.attach();\n * document.body.appendChild(audioElement);\n * });\n */\n\n /**\n * Attach the {@link AudioTrack} to an existing HTMLMediaElement. The\n * HTMLMediaElement could be an HTMLAudioElement or an HTMLVideoElement.\n *\n * If the HTMLMediaElement's srcObject is not set to a MediaStream,\n * this method sets it to a new MediaStream containing the {@link AudioTrack}'s\n * MediaStreamTrack; otherwise, it adds the {@link MediaTrack}'s\n * MediaStreamTrack to the existing MediaStream. Finally, if there are any other\n * MediaStreamTracks of the same kind on the MediaStream, this method removes\n * them.\n *\n * @param {HTMLMediaElement} mediaElement - The HTMLMediaElement to attach to\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const Video = require('twilio-video');\n *\n * const videoElement = document.createElement('video');\n * document.body.appendChild(videoElement);\n *\n * Video.createLocalAudioTrack().then(function(audioTrack) {\n * audioTrack.attach(videoElement);\n * });\n */\n\n /**\n * Attach the {@link AudioTrack} to an HTMLMediaElement selected by\n * document.querySelector. The HTMLMediaElement could be an\n * HTMLAudioElement or an HTMLVideoElement.\n *\n * If the HTMLMediaElement's srcObject is not set to a MediaStream,\n * this method sets it to a new MediaStream containing the {@link AudioTrack}'s\n * MediaStreamTrack; otherwise, it adds the {@link AudioTrack}'s\n * MediaStreamTrack to the existing MediaStream. Finally, if there are any other\n * MediaStreamTracks of the same kind on the MediaStream, this method removes\n * them.\n *\n * @param {string} selector - A query selector for the HTMLMediaElement to\n * attach to\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const Video = require('twilio-video');\n *\n * const videoElement = document.createElement('video');\n * videoElement.id = 'my-video-element';\n * document.body.appendChild(videoElement);\n *\n * Video.createLocalAudioTrack().then(function(track) {\n * track.attach('#my-video-element');\n * });\n */\n\n }, {\n key: 'attach',\n value: function attach() {\n return _get(AudioTrack.prototype.__proto__ || Object.getPrototypeOf(AudioTrack.prototype), 'attach', this).apply(this, arguments);\n }\n /**\n * Detach the {@link AudioTrack} from all previously attached HTMLMediaElements.\n * @returns {Array} mediaElements\n * @example\n * const mediaElements = audioTrack.detach();\n * mediaElements.forEach(mediaElement => mediaElement.remove());\n */\n\n /**\n * Detach the {@link AudioTrack} from a previously attached HTMLMediaElement.\n * @param {HTMLMediaElement} mediaElement - One of the HTMLMediaElements to\n * which the {@link AudioTrack} is attached\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const videoElement = document.getElementById('my-video-element');\n * audioTrack.detach(videoElement).remove();\n */\n\n /**\n * Detach the {@link AudioTrack} from a previously attached HTMLMediaElement\n * specified by document.querySelector.\n * @param {string} selector - The query selector of HTMLMediaElement to which\n * the {@link AudioTrack} is attached\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * audioTrack.detach('#my-video-element').remove();\n */\n\n }, {\n key: 'detach',\n value: function detach() {\n return _get(AudioTrack.prototype.__proto__ || Object.getPrototypeOf(AudioTrack.prototype), 'detach', this).apply(this, arguments);\n }\n }]);\n\n return AudioTrack;\n}(MediaTrack);\n/**\n * The {@link AudioTrack} was disabled, i.e. \"muted\".\n * @param {AudioTrack} track - The {@link AudioTrack} that was disabled\n * @event AudioTrack#disabled\n */\n\n/**\n * The {@link AudioTrack} was enabled, i.e. \"unmuted\".\n * @param {AudioTrack} track - The {@link AudioTrack} that was enabled\n * @event AudioTrack#enabled\n */\n\n/**\n * The {@link AudioTrack} started. This means there is enough audio data to\n * begin playback.\n * @param {AudioTrack} track - The {@link AudioTrack} that started\n * @event AudioTrack#started\n */\n\n\nmodule.exports = AudioTrack;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MediaStream = require('@twilio/webrtc').MediaStream;\n\nvar Track = require('./');\n/**\n * A {@link MediaTrack} represents audio or video that can be sent to or\n * received from a {@link Room}.\n * @extends Track\n * @property {Track.ID} id - This {@link Track}'s ID\n * @property {boolean} isStarted - Whether or not the {@link MediaTrack} has\n * started\n * @property {boolean} isEnabled - Whether or not the {@link MediaTrack} is\n * enabled (i.e., whether it is paused or muted)\n * @property {Track.Kind} kind - The kind of the underlying\n * MediaStreamTrack, \"audio\" or \"video\"\n * @property {MediaStreamTrack} mediaStreamTrack - The underlying\n * MediaStreamTrack\n * @emits MediaTrack#disabled\n * @emits MediaTrack#enabled\n * @emits MediaTrack#started\n */\n\n\nvar MediaTrack = function (_Track) {\n _inherits(MediaTrack, _Track);\n /**\n * Construct a {@link MediaTrack}.\n * @param {MediaTrackTransceiver} mediaTrackTransceiver\n * @param {{log: Log}} options\n */\n\n\n function MediaTrack(mediaTrackTransceiver, options) {\n _classCallCheck(this, MediaTrack);\n\n var _this = _possibleConstructorReturn(this, (MediaTrack.__proto__ || Object.getPrototypeOf(MediaTrack)).call(this, mediaTrackTransceiver.id, mediaTrackTransceiver.kind, options));\n\n var isStarted = false;\n options = Object.assign({\n MediaStream: MediaStream\n }, options);\n /* istanbul ignore next */\n\n Object.defineProperties(_this, {\n _attachments: {\n value: new Set()\n },\n _dummyEl: {\n value: null,\n writable: true\n },\n _isStarted: {\n get: function get() {\n return isStarted;\n },\n set: function set(_isStarted) {\n isStarted = _isStarted;\n }\n },\n _MediaStream: {\n value: options.MediaStream\n },\n isStarted: {\n enumerable: true,\n get: function get() {\n return isStarted;\n }\n },\n mediaStreamTrack: {\n enumerable: true,\n value: mediaTrackTransceiver.track\n }\n });\n\n _this._initialize();\n\n return _this;\n }\n /**\n * @private\n */\n\n\n _createClass(MediaTrack, [{\n key: '_start',\n value: function _start() {\n this._log.debug('Started');\n\n this._isStarted = true;\n\n if (this._dummyEl) {\n this._dummyEl.oncanplay = null;\n } // eslint-disable-next-line no-use-before-define\n\n\n this.emit('started', this);\n }\n /**\n * @private\n */\n\n }, {\n key: '_initialize',\n value: function _initialize() {\n var self = this;\n\n this._log.debug('Initializing');\n\n this._dummyEl = this._createElement();\n this.mediaStreamTrack.addEventListener('ended', function onended() {\n self._end();\n\n self.mediaStreamTrack.removeEventListener('ended', onended);\n });\n\n if (this._dummyEl) {\n this._dummyEl.muted = true;\n this._dummyEl.oncanplay = this._start.bind(this, this._dummyEl);\n\n this._attach(this._dummyEl);\n\n this._attachments[\"delete\"](this._dummyEl);\n }\n }\n /**\n * @private\n */\n\n }, {\n key: '_end',\n value: function _end() {\n this._log.debug('Ended');\n\n if (this._dummyEl) {\n this._detachElement(this._dummyEl);\n\n this._dummyEl.oncanplay = null;\n }\n }\n }, {\n key: 'attach',\n value: function attach(el) {\n if (typeof el === 'string') {\n el = this._selectElement(el);\n } else if (!el) {\n el = this._createElement();\n }\n\n this._log.debug('Attempting to attach to element:', el);\n\n el = this._attach(el);\n return el;\n }\n /**\n * @private\n */\n\n }, {\n key: '_attach',\n value: function _attach(el) {\n var mediaStream = el.srcObject;\n\n if (!(mediaStream instanceof this._MediaStream)) {\n mediaStream = new this._MediaStream();\n }\n\n var getTracks = this.mediaStreamTrack.kind === 'audio' ? 'getAudioTracks' : 'getVideoTracks';\n mediaStream[getTracks]().forEach(function (mediaStreamTrack) {\n mediaStream.removeTrack(mediaStreamTrack);\n });\n mediaStream.addTrack(this.mediaStreamTrack); // NOTE(mpatwardhan): resetting `srcObject` here, causes flicker (JSDK-2641), but it lets us\n // to sidestep the a chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1052353\n //\n\n el.srcObject = mediaStream;\n el.autoplay = true;\n el.playsInline = true;\n\n if (!this._attachments.has(el)) {\n this._attachments.add(el);\n }\n\n return el;\n }\n /**\n * @private\n */\n\n }, {\n key: '_selectElement',\n value: function _selectElement(selector) {\n var el = document.querySelector(selector);\n\n if (!el) {\n throw new Error('Selector matched no element: ' + selector);\n }\n\n return el;\n }\n /**\n * @private\n */\n\n }, {\n key: '_createElement',\n value: function _createElement() {\n return typeof document !== 'undefined' ? document.createElement(this.kind) : null;\n }\n }, {\n key: 'detach',\n value: function detach(el) {\n var els = void 0;\n\n if (typeof el === 'string') {\n els = [this._selectElement(el)];\n } else if (!el) {\n els = this._getAllAttachedElements();\n } else {\n els = [el];\n }\n\n this._log.debug('Attempting to detach from elements:', els);\n\n this._detachElements(els);\n\n return el ? els[0] : els;\n }\n /**\n * @private\n */\n\n }, {\n key: '_detachElements',\n value: function _detachElements(elements) {\n return elements.map(this._detachElement.bind(this));\n }\n /**\n * @private\n */\n\n }, {\n key: '_detachElement',\n value: function _detachElement(el) {\n if (!this._attachments.has(el)) {\n return el;\n }\n\n var mediaStream = el.srcObject;\n\n if (mediaStream instanceof this._MediaStream) {\n mediaStream.removeTrack(this.mediaStreamTrack);\n }\n\n this._attachments[\"delete\"](el);\n\n return el;\n }\n /**\n * @private\n */\n\n }, {\n key: '_getAllAttachedElements',\n value: function _getAllAttachedElements() {\n var els = [];\n\n this._attachments.forEach(function (el) {\n els.push(el);\n });\n\n return els;\n }\n }]);\n\n return MediaTrack;\n}(Track);\n\nmodule.exports = MediaTrack;","/* globals MediaStream */\n'use strict';\n\nif (typeof MediaStream !== 'undefined') {\n module.exports = MediaStream;\n} else {\n module.exports = function MediaStream() {\n throw new Error('WebRTC is not supported in this browser');\n };\n}","/* globals RTCSessionDescription */\n'use strict'; // This class wraps Chrome's RTCSessionDescription implementation. It provides\n// one piece of functionality not currently present in Chrome, namely\n//\n// 1. Rollback support\n// https://bugs.chromium.org/p/webrtc/issues/detail?id=4676\n//\n\nfunction ChromeRTCSessionDescription(descriptionInitDict) {\n if (!(this instanceof ChromeRTCSessionDescription)) {\n return new ChromeRTCSessionDescription(descriptionInitDict);\n } // If this constructor is called with an object with a .type property set to\n // \"rollback\", we should not call Chrome's RTCSessionDescription constructor,\n // because this would throw an RTCSdpType error.\n\n\n var description = descriptionInitDict && descriptionInitDict.type === 'rollback' ? null : new RTCSessionDescription(descriptionInitDict);\n Object.defineProperties(this, {\n _description: {\n get: function get() {\n return description;\n }\n },\n sdp: {\n enumerable: true,\n value: description ? description.sdp : descriptionInitDict.sdp\n },\n type: {\n enumerable: true,\n value: description ? description.type : descriptionInitDict.type\n }\n });\n}\n\nmodule.exports = ChromeRTCSessionDescription;","'use strict';\n\nvar defer = require('./').defer;\n\nvar states = {\n high: new Set(['low']),\n low: new Set(['high'])\n};\n/**\n * Construct a {@link Latch}.\n * @class\n * @classdesc A {@link Latch} has two states (\"high\" and \"low\") and methods for\n * transitioning between them ({@link Latch#raise} and {@link Latch#lower}).\n * @param {string} [initialState=\"low\"] - either \"high\" or \"low\"\n */\n\nfunction Latch(initialState) {\n if (!(this instanceof Latch)) {\n return new Latch(initialState);\n }\n\n var state = initialState || 'low';\n Object.defineProperties(this, {\n _state: {\n set: function set(_state) {\n if (state !== _state) {\n state = _state;\n\n var whenDeferreds = this._whenDeferreds.get(state);\n\n whenDeferreds.forEach(function (deferred) {\n deferred.resolve(this);\n }, this);\n whenDeferreds.clear();\n }\n },\n get: function get() {\n return state;\n }\n },\n _whenDeferreds: {\n value: new Map([['high', new Set()], ['low', new Set()]])\n },\n state: {\n enumerable: true,\n get: function get() {\n return this._state;\n }\n }\n });\n}\n/**\n * Transition to \"low\".\n * @returns {this}\n * @throws {Error}\n */\n\n\nLatch.prototype.lower = function lower() {\n return this.transition('low');\n};\n/**\n * Transition to \"high\".\n * @returns {this}\n * @throws {Error}\n */\n\n\nLatch.prototype.raise = function raise() {\n return this.transition('high');\n};\n/**\n * Transition to a new state.\n * @param {string} newState\n * @returns {this}\n * @throws {Error}\n */\n\n\nLatch.prototype.transition = function transition(newState) {\n if (!states[this.state].has(newState)) {\n throw createUnreachableStateError(this.state, newState);\n }\n\n this._state = newState;\n return this;\n};\n/**\n * Return a Promise that resolves when the {@link Latch} transitions to\n * the specified state.\n * @param {string} state\n * @returns {Promise}\n */\n\n\nLatch.prototype.when = function when(state) {\n if (this.state === state) {\n return Promise.resolve(this);\n }\n\n if (!states[this.state].has(state)) {\n return Promise.reject(createUnreachableStateError(this.state, state));\n }\n\n var deferred = defer();\n\n this._whenDeferreds.get(state).add(deferred);\n\n return deferred.promise;\n};\n/**\n * Create an unreachable state Error.\n * @param {string} from - state to be transitioned from\n * @param {string} to - state to be transitioned to\n * @return {Error}\n */\n\n\nfunction createUnreachableStateError(from, to) {\n return new Error('Cannot transition from \"' + from + '\" to \"' + to + '\"');\n}\n\nmodule.exports = Latch;","/* globals RTCSessionDescription */\n'use strict';\n\nmodule.exports = typeof RTCSessionDescription !== 'undefined' ? RTCSessionDescription : window.mozRTCSessionDescription;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MediaTrackSender = require('./sender');\n\nfunction mixinLocalMediaTrack(AudioOrVideoTrack) {\n /**\n * A {@link LocalMediaTrack} represents audio or video that your\n * {@link LocalParticipant} is sending to a {@link Room}. As such, it can be\n * enabled and disabled with {@link LocalMediaTrack#enable} and\n * {@link LocalMediaTrack#disable} or stopped completely with\n * {@link LocalMediaTrack#stop}.\n * @emits LocalMediaTrack#stopped\n */\n return function (_AudioOrVideoTrack) {\n _inherits(LocalMediaTrack, _AudioOrVideoTrack);\n /**\n * Construct a {@link LocalMediaTrack} from a MediaStreamTrack.\n * @param {MediaStreamTrack} mediaStreamTrack - The underlying MediaStreamTrack\n * @param {LocalTrackOptions} [options] - {@link LocalTrack} options\n */\n\n\n function LocalMediaTrack(mediaStreamTrack, options) {\n _classCallCheck(this, LocalMediaTrack);\n\n options = Object.assign({}, options);\n var mediaTrackSender = new MediaTrackSender(mediaStreamTrack);\n\n var _this = _possibleConstructorReturn(this, (LocalMediaTrack.__proto__ || Object.getPrototypeOf(LocalMediaTrack)).call(this, mediaTrackSender, options));\n\n Object.defineProperties(_this, {\n _didCallEnd: {\n value: false,\n writable: true\n },\n _trackSender: {\n value: mediaTrackSender\n },\n id: {\n enumerable: true,\n value: mediaStreamTrack.id\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n return mediaStreamTrack.enabled;\n }\n },\n isStopped: {\n enumerable: true,\n get: function get() {\n return mediaStreamTrack.readyState === 'ended';\n }\n }\n });\n return _this;\n }\n /**\n * @private\n */\n\n\n _createClass(LocalMediaTrack, [{\n key: '_end',\n value: function _end() {\n if (this._didCallEnd) {\n return;\n }\n\n _get(LocalMediaTrack.prototype.__proto__ || Object.getPrototypeOf(LocalMediaTrack.prototype), '_end', this).call(this);\n\n this._didCallEnd = true;\n this.emit('stopped', this);\n }\n }, {\n key: 'enable',\n value: function enable(enabled) {\n enabled = typeof enabled === 'boolean' ? enabled : true;\n\n if (enabled !== this.mediaStreamTrack.enabled) {\n this._log.info((enabled ? 'En' : 'Dis') + 'abling');\n\n this.mediaStreamTrack.enabled = enabled;\n this.emit(enabled ? 'enabled' : 'disabled', this);\n }\n\n return this;\n }\n }, {\n key: 'disable',\n value: function disable() {\n return this.enable(false);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this._log.info('Stopping');\n\n this.mediaStreamTrack.stop();\n\n this._end();\n\n return this;\n }\n }]);\n\n return LocalMediaTrack;\n }(AudioOrVideoTrack);\n}\n\nmodule.exports = mixinLocalMediaTrack;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MediaTrackTransceiver = require('./transceiver');\n/**\n * A {@link MediaTrackSender} represents one or more local RTCRtpSenders.\n * @extends MediaTrackTransceiver\n */\n\n\nvar MediaTrackSender = function (_MediaTrackTransceive) {\n _inherits(MediaTrackSender, _MediaTrackTransceive);\n /**\n * Construct a {@link MediaTrackSender}.\n * @param {MediaStreamTrack} mediaStreamTrack\n */\n\n\n function MediaTrackSender(mediaStreamTrack) {\n _classCallCheck(this, MediaTrackSender);\n\n var _this = _possibleConstructorReturn(this, (MediaTrackSender.__proto__ || Object.getPrototypeOf(MediaTrackSender)).call(this, mediaStreamTrack.id, mediaStreamTrack));\n\n Object.defineProperties(_this, {\n _senders: {\n value: new Set()\n }\n });\n return _this;\n }\n /**\n * Return a new {@link MediaTrackSender} containing a clone of the underlying\n * MediaStreamTrack. No RTCRtpSenders are copied.\n * @returns {MediaTrackSender}\n */\n\n\n _createClass(MediaTrackSender, [{\n key: 'clone',\n value: function clone() {\n return new MediaTrackSender(this.track.clone());\n }\n /**\n * Add an RTCRtpSender.\n * @param {RTCRtpSender} sender\n * @returns {this}\n */\n\n }, {\n key: 'addSender',\n value: function addSender(sender) {\n this._senders.add(sender);\n\n return this;\n }\n /**\n * Remove an RTCRtpSender.\n * @param {RTCRtpSender} sender\n * @returns {this}\n */\n\n }, {\n key: 'removeSender',\n value: function removeSender(sender) {\n this._senders[\"delete\"](sender);\n\n return this;\n }\n }]);\n\n return MediaTrackSender;\n}(MediaTrackTransceiver);\n\nmodule.exports = MediaTrackSender;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackTransceiver = require('../../transceiver');\n/**\n * A {@link MediaTrackTransceiver} represents either one or more local\n * RTCRtpSenders, or a single RTCRtpReceiver.\n * @extends TrackTransceiver\n * @property {MediaStreamTrack} track\n */\n\n\nvar MediaTrackTransceiver = function (_TrackTransceiver) {\n _inherits(MediaTrackTransceiver, _TrackTransceiver);\n /**\n * Construct a {@link MediaTrackTransceiver}.\n * @param {Track.ID} id - The MediaStreamTrack ID signaled through RSP/SDP\n * @param {MediaStreamTrack} mediaStreamTrack\n */\n\n\n function MediaTrackTransceiver(id, mediaStreamTrack) {\n _classCallCheck(this, MediaTrackTransceiver);\n\n var _this = _possibleConstructorReturn(this, (MediaTrackTransceiver.__proto__ || Object.getPrototypeOf(MediaTrackTransceiver)).call(this, id, mediaStreamTrack.kind));\n\n Object.defineProperties(_this, {\n readyState: {\n enumerable: true,\n get: function get() {\n return mediaStreamTrack.readyState;\n }\n },\n track: {\n enumerable: true,\n value: mediaStreamTrack\n }\n });\n return _this;\n }\n\n _createClass(MediaTrackTransceiver, [{\n key: 'stop',\n value: function stop() {\n this.track.stop();\n\n _get(MediaTrackTransceiver.prototype.__proto__ || Object.getPrototypeOf(MediaTrackTransceiver.prototype), 'stop', this).call(this);\n }\n }]);\n\n return MediaTrackTransceiver;\n}(TrackTransceiver);\n\nmodule.exports = MediaTrackTransceiver;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('events').EventEmitter;\n/**\n * A {@link TrackTransceiver} represents either one or more local RTCRtpSenders\n * or RTCDataChannels, or a single RTCRtpReceiver or remote RTCDataChannel.\n * @extends EventEmitter\n * @property {Track.ID} id\n * @property {Track.kind} kind\n */\n\n\nvar TrackTransceiver = function (_EventEmitter) {\n _inherits(TrackTransceiver, _EventEmitter);\n /**\n * Construct a {@link TrackTransceiver}.\n * @param {Track.ID} id\n * @param {Track.kind} kind\n */\n\n\n function TrackTransceiver(id, kind) {\n _classCallCheck(this, TrackTransceiver);\n\n var _this = _possibleConstructorReturn(this, (TrackTransceiver.__proto__ || Object.getPrototypeOf(TrackTransceiver)).call(this));\n\n Object.defineProperties(_this, {\n id: {\n enumerable: true,\n value: id\n },\n kind: {\n enumerable: true,\n value: kind\n }\n });\n return _this;\n }\n /**\n * Stop the {@link TrackTransceiver}.\n * #emits TrackTransceiver#stopped\n * @returns {void}\n */\n\n\n _createClass(TrackTransceiver, [{\n key: 'stop',\n value: function stop() {\n this.emit('stopped');\n }\n }]);\n\n return TrackTransceiver;\n}(EventEmitter);\n/**\n * The {@link TrackTransceiver} was stopped.\n * @event TrackTransceiver#stopped\n */\n\n\nmodule.exports = TrackTransceiver;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar MediaTrack = require('./mediatrack');\n/**\n * A {@link VideoTrack} is a {@link Track} representing video.\n * @extends Track\n * @property {boolean} isStarted - Whether or not the {@link VideoTrack} has\n * started; if the {@link VideoTrack} started, there is enough video data to\n * begin playback\n * @property {boolean} isEnabled - Whether or not the {@link VideoTrack} is\n * enabled; if the {@link VideoTrack} is not enabled, it is \"paused\"\n * @property {VideoTrack.Dimensions} dimensions - The {@link VideoTrack}'s\n * {@link VideoTrack.Dimensions}\n * @property {Track.Kind} kind - \"video\"\n * @property {MediaStreamTrack} mediaStreamTrack - A video MediaStreamTrack\n * @emits VideoTrack#dimensionsChanged\n * @emits VideoTrack#disabled\n * @emits VideoTrack#enabled\n * @emits VideoTrack#started\n */\n\n\nvar VideoTrack = function (_MediaTrack) {\n _inherits(VideoTrack, _MediaTrack);\n /**\n * Construct a {@link VideoTrack}.\n * @param {MediaTrackTransceiver} mediaTrackTransceiver\n * @param {{log: Log}} options\n */\n\n\n function VideoTrack(mediaTrackTransceiver, options) {\n var _ret;\n\n _classCallCheck(this, VideoTrack);\n\n var _this = _possibleConstructorReturn(this, (VideoTrack.__proto__ || Object.getPrototypeOf(VideoTrack)).call(this, mediaTrackTransceiver, options));\n\n Object.defineProperties(_this, {\n dimensions: {\n enumerable: true,\n value: {\n width: null,\n height: null\n }\n }\n });\n return _ret = _this, _possibleConstructorReturn(_this, _ret);\n }\n /**\n * @private\n */\n\n\n _createClass(VideoTrack, [{\n key: '_initialize',\n value: function _initialize() {\n var _this2 = this;\n\n _get(VideoTrack.prototype.__proto__ || Object.getPrototypeOf(VideoTrack.prototype), '_initialize', this).call(this);\n\n if (this._dummyEl) {\n this._dummyEl.onloadedmetadata = function () {\n if (dimensionsChanged(_this2, _this2._dummyEl)) {\n _this2.dimensions.width = _this2._dummyEl.videoWidth;\n _this2.dimensions.height = _this2._dummyEl.videoHeight;\n }\n };\n\n this._dummyEl.onresize = function () {\n if (dimensionsChanged(_this2, _this2._dummyEl)) {\n _this2.dimensions.width = _this2._dummyEl.videoWidth;\n _this2.dimensions.height = _this2._dummyEl.videoHeight;\n\n if (_this2.isStarted) {\n _this2._log.debug('Dimensions changed:', _this2.dimensions);\n\n _this2.emit(VideoTrack.DIMENSIONS_CHANGED, _this2);\n }\n }\n };\n }\n }\n /**\n * @private\n */\n\n }, {\n key: '_start',\n value: function _start(dummyEl) {\n this.dimensions.width = dummyEl.videoWidth;\n this.dimensions.height = dummyEl.videoHeight;\n\n this._log.debug('Dimensions:', this.dimensions);\n\n return _get(VideoTrack.prototype.__proto__ || Object.getPrototypeOf(VideoTrack.prototype), '_start', this).call(this, dummyEl);\n }\n /**\n * Create an HTMLVideoElement and attach the {@link VideoTrack} to it.\n *\n * The HTMLVideoElement's srcObject will be set to a new\n * MediaStream containing the {@link VideoTrack}'s MediaStreamTrack.\n *\n * @returns {HTMLVideoElement} videoElement\n * @example\n * const Video = require('twilio-video');\n *\n * Video.createLocalVideoTrack().then(function(videoTrack) {\n * const videoElement = videoTrack.attach();\n * document.body.appendChild(videoElement);\n * });\n */\n\n /**\n * Attach the {@link VideoTrack} to an existing HTMLMediaElement. The\n * HTMLMediaElement could be an HTMLAudioElement or an HTMLVideoElement.\n *\n * If the HTMLMediaElement's srcObject is not set to a MediaStream,\n * this method sets it to a new MediaStream containing the {@link VideoTrack}'s\n * MediaStreamTrack; otherwise, it adds the {@link MediaTrack}'s\n * MediaStreamTrack to the existing MediaStream. Finally, if there are any other\n * MediaStreamTracks of the same kind on the MediaStream, this method removes\n * them.\n *\n * @param {HTMLMediaElement} mediaElement - The HTMLMediaElement to attach to\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const Video = require('twilio-video');\n *\n * const videoElement = document.createElement('video');\n * document.body.appendChild(videoElement);\n *\n * Video.createLocalVideoTrack().then(function(videoTrack) {\n * videoTrack.attach(videoElement);\n * });\n */\n\n /**\n * Attach the {@link VideoTrack} to an HTMLMediaElement selected by\n * document.querySelector. The HTMLMediaElement could be an\n * HTMLAudioElement or an HTMLVideoElement.\n *\n * If the HTMLMediaElement's srcObject is not set to a MediaStream,\n * this method sets it to a new MediaStream containing the {@link VideoTrack}'s\n * MediaStreamTrack; otherwise, it adds the {@link VideoTrack}'s\n * MediaStreamTrack to the existing MediaStream. Finally, if there are any other\n * MediaStreamTracks of the same kind on the MediaStream, this method removes\n * them.\n *\n * @param {string} selector - A query selector for the HTMLMediaElement to\n * attach to\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const Video = require('twilio-video');\n *\n * const videoElement = document.createElement('video');\n * videoElement.id = 'my-video-element';\n * document.body.appendChild(videoElement);\n *\n * Video.createLocalVideoTrack().then(function(track) {\n * track.attach('#my-video-element');\n * });\n */\n\n }, {\n key: 'attach',\n value: function attach() {\n return _get(VideoTrack.prototype.__proto__ || Object.getPrototypeOf(VideoTrack.prototype), 'attach', this).apply(this, arguments);\n }\n /**\n * Detach the {@link VideoTrack} from all previously attached HTMLMediaElements.\n * @returns {Array} mediaElements\n * @example\n * const mediaElements = videoTrack.detach();\n * mediaElements.forEach(mediaElement => mediaElement.remove());\n */\n\n /**\n * Detach the {@link VideoTrack} from a previously attached HTMLMediaElement.\n * @param {HTMLMediaElement} mediaElement - One of the HTMLMediaElements to\n * which the {@link VideoTrack} is attached\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * const videoElement = document.getElementById('my-video-element');\n * videoTrack.detach(videoElement).remove();\n */\n\n /**\n * Detach the {@link VideoTrack} from a previously attached HTMLMediaElement\n * specified by document.querySelector.\n * @param {string} selector - The query selector of HTMLMediaElement to which\n * the {@link VideoTrack} is attached\n * @returns {HTMLMediaElement} mediaElement\n * @example\n * videoTrack.detach('#my-video-element').remove();\n */\n\n }, {\n key: 'detach',\n value: function detach() {\n return _get(VideoTrack.prototype.__proto__ || Object.getPrototypeOf(VideoTrack.prototype), 'detach', this).apply(this, arguments);\n }\n }]);\n\n return VideoTrack;\n}(MediaTrack);\n\nVideoTrack.DIMENSIONS_CHANGED = 'dimensionsChanged';\n\nfunction dimensionsChanged(track, elem) {\n return track.dimensions.width !== elem.videoWidth || track.dimensions.height !== elem.videoHeight;\n}\n/**\n * A {@link VideoTrack}'s width and height.\n * @typedef {object} VideoTrack.Dimensions\n * @property {?number} width - The {@link VideoTrack}'s width or null if the\n * {@link VideoTrack} has not yet started\n * @property {?number} height - The {@link VideoTrack}'s height or null if the\n * {@link VideoTrack} has not yet started\n */\n\n/**\n * The {@link VideoTrack}'s dimensions changed.\n * @param {VideoTrack} track - The {@link VideoTrack} whose dimensions changed\n * @event VideoTrack#dimensionsChanged\n */\n\n/**\n * The {@link VideoTrack} was disabled, i.e. \"paused\".\n * @param {VideoTrack} track - The {@link VideoTrack} that was disabled\n * @event VideoTrack#disabled\n */\n\n/**\n * The {@link VideoTrack} was enabled, i.e. \"unpaused\".\n * @param {VideoTrack} track - The {@link VideoTrack} that was enabled\n * @event VideoTrack#enabled\n */\n\n/**\n * The {@link VideoTrack} started. This means there is enough video data to\n * begin playback.\n * @param {VideoTrack} track - The {@link VideoTrack} that started\n * @event VideoTrack#started\n */\n\n\nmodule.exports = VideoTrack;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackTransceiver = require('../transceiver');\n/**\n * A {@link DataTrackTransceiver} represents either one or more local\n * RTCDataChannels or a single remote RTCDataChannel. It can be used to send or\n * receive data.\n * @extends TrackTransceiver\n * @property {string} id\n * @property {string} kind - \"data\"\n * @property {?number} maxPacketLifeTime\n * @property {?number} maxRetransmits\n * @property {boolean} ordered\n */\n\n\nvar DataTrackTransceiver = function (_TrackTransceiver) {\n _inherits(DataTrackTransceiver, _TrackTransceiver);\n /**\n * Construct a {@link DataTrackTransceiver}.\n * @param {string} id\n * @param {?number} maxPacketLifeTime\n * @param {?number} maxRetransmits\n * @param {boolean} ordered\n */\n\n\n function DataTrackTransceiver(id, maxPacketLifeTime, maxRetransmits, ordered) {\n _classCallCheck(this, DataTrackTransceiver);\n\n var _this = _possibleConstructorReturn(this, (DataTrackTransceiver.__proto__ || Object.getPrototypeOf(DataTrackTransceiver)).call(this, id, 'data'));\n\n Object.defineProperties(_this, {\n maxPacketLifeTime: {\n enumerable: true,\n value: maxPacketLifeTime\n },\n maxRetransmits: {\n enumerable: true,\n value: maxRetransmits\n },\n ordered: {\n enumerable: true,\n value: ordered\n }\n });\n return _this;\n }\n\n return DataTrackTransceiver;\n}(TrackTransceiver);\n\nmodule.exports = DataTrackTransceiver;","/* globals webkitAudioContext, AudioContext */\n'use strict';\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar NativeAudioContext = typeof AudioContext !== 'undefined' ? AudioContext : typeof webkitAudioContext !== 'undefined' ? webkitAudioContext : null;\n/**\n * @interface AudioContextFactoryOptions\n * @property {AudioContext} [AudioContext] - The AudioContext constructor\n */\n\n/**\n * {@link AudioContextFactory} ensures we construct at most one AudioContext\n * at a time, and that it is eventually closed when we no longer need it.\n * @property {AudioContextFactory} AudioContextFactory - The\n * {@link AudioContextFactory} constructor\n */\n\nvar AudioContextFactory = function () {\n /**\n * @param {AudioContextFactoryOptions} [options]\n */\n function AudioContextFactory(options) {\n _classCallCheck(this, AudioContextFactory);\n\n options = Object.assign({\n AudioContext: NativeAudioContext\n }, options);\n Object.defineProperties(this, {\n _AudioContext: {\n value: options.AudioContext\n },\n _audioContext: {\n value: null,\n writable: true\n },\n _holders: {\n value: new Set()\n },\n AudioContextFactory: {\n enumerable: true,\n value: AudioContextFactory\n }\n });\n }\n /**\n * Each call to {@link AudioContextFactory#getOrCreate} should be paired with a\n * call to {@link AudioContextFactory#release}. Calling this increments an\n * internal reference count.\n * @param {*} holder - The object to hold a reference to the AudioContext\n * @returns {?AudioContext}\n */\n\n\n _createClass(AudioContextFactory, [{\n key: 'getOrCreate',\n value: function getOrCreate(holder) {\n if (!this._holders.has(holder)) {\n this._holders.add(holder);\n\n if (this._AudioContext && !this._audioContext) {\n try {\n this._audioContext = new this._AudioContext();\n } catch (error) {// Do nothing;\n }\n }\n }\n\n return this._audioContext;\n }\n /**\n * Decrement the internal reference count. If it reaches zero, close and destroy\n * the AudioContext.\n * @param {*} holder - The object that held a reference to the AudioContext\n * @returns {void}\n */\n\n }, {\n key: 'release',\n value: function release(holder) {\n if (this._holders.has(holder)) {\n this._holders[\"delete\"](holder);\n\n if (!this._holders.size && this._audioContext) {\n this._audioContext.close();\n\n this._audioContext = null;\n }\n }\n }\n }]);\n\n return AudioContextFactory;\n}();\n\nmodule.exports = new AudioContextFactory();","'use strict';\n\nfunction _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\nvar _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n};\n\nvar _require = require('./'),\n isNonArrayObject = _require.isNonArrayObject;\n\nvar _require2 = require('./constants'),\n E = _require2.typeErrors,\n subscriptionMode = _require2.subscriptionMode,\n trackPriority = _require2.trackPriority,\n trackSwitchOffMode = _require2.trackSwitchOffMode;\n/**\n * Validate the {@link BandwidthProfileOptions} object.\n * @param {BandwidthProfileOptions} bandwidthProfile\n * @returns {?Error} - null if valid, Error if not.\n */\n\n\nfunction validateBandwidthProfile(bandwidthProfile) {\n var error = validateObject(bandwidthProfile, 'options.bandwidthProfile');\n\n if (!bandwidthProfile || error) {\n return error;\n }\n\n error = validateObject(bandwidthProfile.video, 'options.bandwidthProfile.video', [{\n prop: 'dominantSpeakerPriority',\n values: Object.values(trackPriority)\n }, {\n prop: 'maxSubscriptionBitrate',\n type: 'number'\n }, {\n prop: 'maxTracks',\n type: 'number'\n }, {\n prop: 'mode',\n values: Object.values(subscriptionMode)\n }, {\n prop: 'trackSwitchOffMode',\n values: Object.values(trackSwitchOffMode)\n }]);\n return error || (bandwidthProfile.video ? validateRenderDimensions(bandwidthProfile.video.renderDimensions) : null);\n}\n/**\n * Throw if the given track is not a {@link LocalAudioTrack}, a\n * {@link LocalVideoTrack} or a MediaStreamTrack.\n * @param {*} track\n * @param {object} options\n */\n\n\nfunction validateLocalTrack(track, options) {\n if (!(track instanceof options.LocalAudioTrack || track instanceof options.LocalDataTrack || track instanceof options.LocalVideoTrack || track instanceof options.MediaStreamTrack)) {\n /* eslint new-cap:0 */\n throw E.INVALID_TYPE('track', 'LocalAudioTrack, LocalVideoTrack, LocalDataTrack, or MediaStreamTrack');\n }\n}\n/**\n * Validate an object. An object is valid if it is undefined or a non-null, non-array\n * object whose properties satisfy the specified data-type or value-range requirements.\n * @param {object} object - the object to be validated\n * @param {string} name - the object name to be used to build the error message, if invalid\n * @param {Array} [propChecks] - optional data-type or value-range requirements\n * for the object's properties\n * @returns {?Error} - null if object is valid, Error if not\n */\n\n\nfunction validateObject(object, name) {\n var propChecks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : []; // NOTE(mmalavalli): We determine that an undefined object is valid because this\n // means the parent object does not contain this object as a property, which is\n // a valid scenario.\n\n if (typeof object === 'undefined') {\n return null;\n } // NOTE(mmalavalli): We determine that if the object is null, or an Array, or\n // any other non-object type, then it is invalid.\n\n\n if (object === null || !isNonArrayObject(object)) {\n return E.INVALID_TYPE(name, 'object');\n } // NOTE(mmalavalli): We determine that the object is invalid if at least one of\n // its properties does not satisfy its data-type or value-range requirement.\n\n\n return propChecks.reduce(function (error, _ref) {\n var prop = _ref.prop,\n type = _ref.type,\n values = _ref.values;\n\n if (error || !(prop in object)) {\n return error;\n }\n\n var value = object[prop];\n\n if (type && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== type) {\n return E.INVALID_TYPE(name + '.' + prop, type);\n }\n\n if (type === 'number' && isNaN(value)) {\n return E.INVALID_TYPE(name + '.' + prop, type);\n }\n\n if (Array.isArray(values) && !values.includes(value)) {\n return E.INVALID_VALUE(name + '.' + prop, values);\n }\n\n return error;\n }, null);\n}\n/**\n * Validate the {@link VideoRenderDimensions} object.\n * @param {VideoRenderDimensions} renderDimensions\n * @returns {?Error} - null if valid, Error if not.\n */\n\n\nfunction validateRenderDimensions(renderDimensions) {\n var name = 'options.bandwidthProfile.video.renderDimensions';\n var error = validateObject(renderDimensions, name);\n return renderDimensions ? error || Object.values(trackPriority).reduce(function (error, prop) {\n return error || validateObject(renderDimensions[prop], name + '.' + prop, [{\n prop: 'height',\n type: 'number'\n }, {\n prop: 'width',\n type: 'number'\n }]);\n }, null) : error;\n}\n\nexports.validateBandwidthProfile = validateBandwidthProfile;\nexports.validateLocalTrack = validateLocalTrack;\nexports.validateObject = validateObject;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('../../eventemitter');\n\nvar _require = require('../../util'),\n buildLogLevels = _require.buildLogLevels,\n valueToJSON = _require.valueToJSON;\n\nvar _require2 = require('../../util/constants'),\n DEFAULT_LOG_LEVEL = _require2.DEFAULT_LOG_LEVEL;\n\nvar Log = require('../../util/log');\n\nvar nInstances = 0;\n/**\n * A {@link TrackPublication} represents a {@link Track} that\n * has been published to a {@link Room}.\n * @property {string} trackName - the published {@link Track}'s name\n * @property {Track.SID} trackSid - SID assigned to the published {@link Track}\n * @emits TrackPublication#trackDisabled\n * @emits TrackPublication#trackEnabled\n */\n\nvar TrackPublication = function (_EventEmitter) {\n _inherits(TrackPublication, _EventEmitter);\n /**\n * Construct a {@link TrackPublication}.\n * @param {string} trackName - the published {@link Track}'s name\n * @param {Track.SID} trackSid - SID assigned to the {@link Track}\n * @param {TrackPublicationOptions} options - {@link TrackPublication} options\n */\n\n\n function TrackPublication(trackName, trackSid, options) {\n _classCallCheck(this, TrackPublication);\n\n var _this = _possibleConstructorReturn(this, (TrackPublication.__proto__ || Object.getPrototypeOf(TrackPublication)).call(this));\n\n options = Object.assign({\n logLevel: DEFAULT_LOG_LEVEL\n }, options);\n var logLevels = buildLogLevels(options.logLevel);\n Object.defineProperties(_this, {\n _instanceId: {\n value: nInstances++\n },\n _log: {\n value: options.log || new Log('default', _this, logLevels)\n },\n trackName: {\n enumerable: true,\n value: trackName\n },\n trackSid: {\n enumerable: true,\n value: trackSid\n }\n });\n return _this;\n }\n\n _createClass(TrackPublication, [{\n key: 'toJSON',\n value: function toJSON() {\n return valueToJSON(this);\n }\n }, {\n key: 'toString',\n value: function toString() {\n return '[TrackPublication #' + this._instanceId + ': ' + this.trackSid + ']';\n }\n }]);\n\n return TrackPublication;\n}(EventEmitter);\n/**\n * The published {@link Track} was disabled.\n * @event TrackPublication#trackDisabled\n */\n\n/**\n * The published {@link Track} was enabled.\n * @event TrackPublication#trackEnabled\n */\n\n/**\n * A {@link LocalAudioTrackPublication} or a {@link RemoteAudioTrackPublication}.\n * @typedef {LocalAudioTrackPublication|RemoteAudioTrackPublication} AudioTrackPublication\n */\n\n/**\n * A {@link LocalDataTrackPublication} or a {@link RemoteDataTrackPublication}.\n * @typedef {LocalDataTrackPublication|RemoteDataTrackPublication} DataTrackPublication\n */\n\n/**\n * A {@link LocalVideoTrackPublication} or a {@link RemoteVideoTrackPublication}.\n * @typedef {LocalVideoTrackPublication|RemoteVideoTrackPublication} VideoTrackPublication\n */\n\n/**\n * {@link TrackPublication} options\n * @typedef {object} TrackPublicationOptions\n * @property {LogLevel|LogLevels} logLevel - Log level for 'media' modules\n */\n\n\nmodule.exports = TrackPublication;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _slicedToArray = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if (Symbol.iterator in Object(arr)) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\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\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('./eventemitter');\n\nvar RemoteAudioTrack = require('./media/track/remoteaudiotrack');\n\nvar RemoteAudioTrackPublication = require('./media/track/remoteaudiotrackpublication');\n\nvar RemoteDataTrack = require('./media/track/remotedatatrack');\n\nvar RemoteDataTrackPublication = require('./media/track/remotedatatrackpublication');\n\nvar RemoteVideoTrack = require('./media/track/remotevideotrack');\n\nvar RemoteVideoTrackPublication = require('./media/track/remotevideotrackpublication');\n\nvar util = require('./util');\n\nvar nInstances = 0;\n/**\n * {@link NetworkQualityLevel} is a value from 0–5, inclusive, representing the\n * quality of a network connection.\n * @typedef {number} NetworkQualityLevel\n */\n\n/**\n * @extends EventEmitter\n * @property {Map} audioTracks -\n * The {@link Participant}'s {@link AudioTrackPublication}s\n * @property {Map} dataTracks -\n * The {@link Participant}'s {@link DataTrackPublication}s.\n * @property {Participant.Identity} identity - The identity of the {@link Participant}\n * @property {?NetworkQualityLevel} networkQualityLevel - The\n * {@link Participant}'s current {@link NetworkQualityLevel}, if any\n * @property {?NetworkQualityStats} networkQualityStats - The\n * {@link Participant}'s current {@link NetworkQualityStats}, if any\n * @property {Participant.SID} sid - The {@link Participant}'s SID\n * @property {string} state - \"connected\", \"disconnected\" or \"reconnecting\"\n * @property {Map} tracks -\n * The {@link Participant}'s {@link TrackPublication}s\n * @property {Map} videoTracks -\n * The {@link Participant}'s {@link VideoTrackPublication}s\n * @emits Participant#disconnected\n * @emits Participant#networkQualityLevelChanged\n * @emits Participant#reconnected\n * @emits Participant#reconnecting\n * @emits Participant#trackDimensionsChanged\n * @emits Participant#trackStarted\n */\n\nvar Participant = function (_EventEmitter) {\n _inherits(Participant, _EventEmitter);\n /**\n * Construct a {@link Participant}.\n * @param {ParticipantSignaling} signaling\n * @param {object} [options]\n */\n\n\n function Participant(signaling, options) {\n _classCallCheck(this, Participant);\n\n var _this = _possibleConstructorReturn(this, (Participant.__proto__ || Object.getPrototypeOf(Participant)).call(this));\n\n options = Object.assign({\n RemoteAudioTrack: RemoteAudioTrack,\n RemoteAudioTrackPublication: RemoteAudioTrackPublication,\n RemoteDataTrack: RemoteDataTrack,\n RemoteDataTrackPublication: RemoteDataTrackPublication,\n RemoteVideoTrack: RemoteVideoTrack,\n RemoteVideoTrackPublication: RemoteVideoTrackPublication,\n tracks: []\n }, options);\n var indexed = indexTracksById(options.tracks);\n var log = options.log.createLog('default', _this);\n var audioTracks = new Map(indexed.audioTracks);\n var dataTracks = new Map(indexed.dataTracks);\n var tracks = new Map(indexed.tracks);\n var videoTracks = new Map(indexed.videoTracks);\n Object.defineProperties(_this, {\n _RemoteAudioTrack: {\n value: options.RemoteAudioTrack\n },\n _RemoteAudioTrackPublication: {\n value: options.RemoteAudioTrackPublication\n },\n _RemoteDataTrack: {\n value: options.RemoteDataTrack\n },\n _RemoteDataTrackPublication: {\n value: options.RemoteDataTrackPublication\n },\n _RemoteVideoTrack: {\n value: options.RemoteVideoTrack\n },\n _RemoteVideoTrackPublication: {\n value: options.RemoteVideoTrackPublication\n },\n _audioTracks: {\n value: audioTracks\n },\n _dataTracks: {\n value: dataTracks\n },\n _instanceId: {\n value: ++nInstances\n },\n _log: {\n value: log\n },\n _signaling: {\n value: signaling\n },\n _tracks: {\n value: tracks\n },\n _trackEventReemitters: {\n value: new Map()\n },\n _trackPublicationEventReemitters: {\n value: new Map()\n },\n _trackSignalingUpdatedEventCallbacks: {\n value: new Map()\n },\n _videoTracks: {\n value: videoTracks\n },\n audioTracks: {\n enumerable: true,\n value: new Map()\n },\n dataTracks: {\n enumerable: true,\n value: new Map()\n },\n identity: {\n enumerable: true,\n get: function get() {\n return signaling.identity;\n }\n },\n networkQualityLevel: {\n enumerable: true,\n get: function get() {\n return signaling.networkQualityLevel;\n }\n },\n networkQualityStats: {\n enumerable: true,\n get: function get() {\n return signaling.networkQualityStats;\n }\n },\n sid: {\n enumerable: true,\n get: function get() {\n return signaling.sid;\n }\n },\n state: {\n enumerable: true,\n get: function get() {\n return signaling.state;\n }\n },\n tracks: {\n enumerable: true,\n value: new Map()\n },\n videoTracks: {\n enumerable: true,\n value: new Map()\n }\n });\n\n _this._tracks.forEach(reemitTrackEvents.bind(null, _this));\n\n signaling.on('networkQualityLevelChanged', function () {\n return _this.emit('networkQualityLevelChanged', _this.networkQualityLevel, _this.networkQualityStats && (_this.networkQualityStats.audio || _this.networkQualityStats.video) ? _this.networkQualityStats : null);\n });\n reemitSignalingStateChangedEvents(_this, signaling);\n log.info('Created a new Participant' + (_this.identity ? ': ' + _this.identity : ''));\n return _this;\n }\n /**\n * Get the {@link RemoteTrack} events to re-emit.\n * @private\n * @returns {Array>} events\n */\n\n\n _createClass(Participant, [{\n key: '_getTrackEvents',\n value: function _getTrackEvents() {\n return [['dimensionsChanged', 'trackDimensionsChanged'], ['message', 'trackMessage'], ['started', 'trackStarted']];\n }\n /**\n * @private\n */\n\n }, {\n key: '_getTrackPublicationEvents',\n value: function _getTrackPublicationEvents() {\n return [];\n }\n }, {\n key: 'toString',\n value: function toString() {\n return '[Participant #' + this._instanceId + ': ' + this.sid + ']';\n }\n /**\n * @private\n * @param {RemoteTrack} track\n * @param {Track.ID} id\n * @returns {?RemoteTrack}\n */\n\n }, {\n key: '_addTrack',\n value: function _addTrack(track, id) {\n var log = this._log;\n\n if (this._tracks.has(id)) {\n return null;\n }\n\n this._tracks.set(id, track);\n\n var tracksByKind = {\n audio: this._audioTracks,\n video: this._videoTracks,\n data: this._dataTracks\n }[track.kind];\n tracksByKind.set(id, track);\n reemitTrackEvents(this, track, id);\n log.info('Added a new ' + util.trackClass(track) + ':', id);\n log.debug(util.trackClass(track) + ':', track);\n return track;\n }\n /**\n * @private\n * @param {RemoteTrackPublication} publication\n * @returns {?RemoteTrackPublication}\n */\n\n }, {\n key: '_addTrackPublication',\n value: function _addTrackPublication(publication) {\n var log = this._log;\n\n if (this.tracks.has(publication.trackSid)) {\n return null;\n }\n\n this.tracks.set(publication.trackSid, publication);\n var trackPublicationsByKind = {\n audio: this.audioTracks,\n data: this.dataTracks,\n video: this.videoTracks\n }[publication.kind];\n trackPublicationsByKind.set(publication.trackSid, publication);\n reemitTrackPublicationEvents(this, publication);\n log.info('Added a new ' + util.trackPublicationClass(publication) + ':', publication.trackSid);\n log.debug(util.trackPublicationClass(publication) + ':', publication);\n return publication;\n }\n /**\n * @private\n */\n\n }, {\n key: '_handleTrackSignalingEvents',\n value: function _handleTrackSignalingEvents() {\n var log = this._log;\n var self = this;\n\n if (this.state === 'disconnected') {\n return;\n }\n\n var RemoteAudioTrack = this._RemoteAudioTrack;\n var RemoteAudioTrackPublication = this._RemoteAudioTrackPublication;\n var RemoteVideoTrack = this._RemoteVideoTrack;\n var RemoteVideoTrackPublication = this._RemoteVideoTrackPublication;\n var RemoteDataTrack = this._RemoteDataTrack;\n var RemoteDataTrackPublication = this._RemoteDataTrackPublication;\n var participantSignaling = this._signaling;\n\n function trackSignalingAdded(signaling) {\n var RemoteTrackPublication = {\n audio: RemoteAudioTrackPublication,\n data: RemoteDataTrackPublication,\n video: RemoteVideoTrackPublication\n }[signaling.kind];\n var publication = new RemoteTrackPublication(signaling, {\n log: log\n });\n\n self._addTrackPublication(publication);\n\n var isSubscribed = signaling.isSubscribed;\n\n if (isSubscribed) {\n trackSignalingSubscribed(signaling);\n }\n\n self._trackSignalingUpdatedEventCallbacks.set(signaling.sid, function () {\n if (isSubscribed !== signaling.isSubscribed) {\n isSubscribed = signaling.isSubscribed;\n\n if (isSubscribed) {\n trackSignalingSubscribed(signaling);\n return;\n }\n\n trackSignalingUnsubscribed(signaling);\n }\n });\n\n signaling.on('updated', self._trackSignalingUpdatedEventCallbacks.get(signaling.sid));\n }\n\n function trackSignalingRemoved(signaling) {\n if (signaling.isSubscribed) {\n signaling.setTrackTransceiver(null);\n }\n\n var updated = self._trackSignalingUpdatedEventCallbacks.get(signaling.sid);\n\n if (updated) {\n signaling.removeListener('updated', updated);\n\n self._trackSignalingUpdatedEventCallbacks[\"delete\"](signaling.sid);\n }\n\n var publication = self.tracks.get(signaling.sid);\n\n if (publication) {\n self._removeTrackPublication(publication);\n }\n }\n\n function trackSignalingSubscribed(signaling) {\n var isEnabled = signaling.isEnabled,\n name = signaling.name,\n kind = signaling.kind,\n sid = signaling.sid,\n trackTransceiver = signaling.trackTransceiver;\n var RemoteTrack = {\n audio: RemoteAudioTrack,\n video: RemoteVideoTrack,\n data: RemoteDataTrack\n }[kind];\n var publication = self.tracks.get(sid); // NOTE(mroberts): It should never be the case that the TrackSignaling and\n // MediaStreamTrack or DataTrackReceiver kinds disagree; however, just in\n // case, we handle it here.\n\n if (!RemoteTrack || kind !== trackTransceiver.kind) {\n return;\n }\n\n var options = {\n log: log,\n name: name\n };\n\n var setPriority = function setPriority(newPriority) {\n return participantSignaling.updateSubscriberTrackPriority(sid, newPriority);\n };\n\n var track = kind === 'data' ? new RemoteTrack(sid, trackTransceiver, options) : new RemoteTrack(sid, trackTransceiver, isEnabled, setPriority, options);\n\n self._addTrack(track, publication, trackTransceiver.id);\n }\n\n function trackSignalingUnsubscribed(signaling) {\n var _Array$from$find = Array.from(self._tracks.entries()).find(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n track = _ref2[1];\n\n return track.sid === signaling.sid;\n }),\n _Array$from$find2 = _slicedToArray(_Array$from$find, 2),\n id = _Array$from$find2[0],\n track = _Array$from$find2[1];\n\n var publication = self.tracks.get(signaling.sid);\n\n if (track) {\n self._removeTrack(track, publication, id);\n }\n }\n\n participantSignaling.on('trackAdded', trackSignalingAdded);\n participantSignaling.on('trackRemoved', trackSignalingRemoved);\n participantSignaling.tracks.forEach(trackSignalingAdded);\n participantSignaling.on('stateChanged', function stateChanged(state) {\n if (state === 'disconnected') {\n log.debug('Removing event listeners');\n participantSignaling.removeListener('stateChanged', stateChanged);\n participantSignaling.removeListener('trackAdded', trackSignalingAdded);\n participantSignaling.removeListener('trackRemoved', trackSignalingRemoved);\n } else if (state === 'connected') {\n // NOTE(mmalavalli): Any transition to \"connected\" here is a result of\n // successful signaling reconnection, and not a first-time establishment\n // of the signaling connection.\n log.info('reconnected'); // NOTE(mpatwardhan): `stateChanged` can get emitted with StateMachine locked.\n // Do not signal public events synchronously with lock held.\n\n setTimeout(function () {\n return self.emit('reconnected');\n }, 0);\n }\n });\n }\n /**\n * @private\n * @param {RemoteTrack} track\n * @param {Track.ID} id\n * @returns {?RemoteTrack}\n */\n\n }, {\n key: '_removeTrack',\n value: function _removeTrack(track, id) {\n if (!this._tracks.has(id)) {\n return null;\n }\n\n this._tracks[\"delete\"](id);\n\n var tracksByKind = {\n audio: this._audioTracks,\n video: this._videoTracks,\n data: this._dataTracks\n }[track.kind];\n tracksByKind[\"delete\"](id);\n var reemitters = this._trackEventReemitters.get(id) || new Map();\n reemitters.forEach(function (reemitter, event) {\n track.removeListener(event, reemitter);\n });\n var log = this._log;\n log.info('Removed a ' + util.trackClass(track) + ':', id);\n log.debug(util.trackClass(track) + ':', track);\n return track;\n }\n /**\n * @private\n * @param {RemoteTrackPublication} publication\n * @returns {?RemoteTrackPublication}\n */\n\n }, {\n key: '_removeTrackPublication',\n value: function _removeTrackPublication(publication) {\n publication = this.tracks.get(publication.trackSid);\n\n if (!publication) {\n return null;\n }\n\n this.tracks[\"delete\"](publication.trackSid);\n var trackPublicationsByKind = {\n audio: this.audioTracks,\n data: this.dataTracks,\n video: this.videoTracks\n }[publication.kind];\n trackPublicationsByKind[\"delete\"](publication.trackSid);\n var reemitters = this._trackPublicationEventReemitters.get(publication.trackSid) || new Map();\n reemitters.forEach(function (reemitter, event) {\n publication.removeListener(event, reemitter);\n });\n var log = this._log;\n log.info('Removed a ' + util.trackPublicationClass(publication) + ':', publication.trackSid);\n log.debug(util.trackPublicationClass(publication) + ':', publication);\n return publication;\n }\n }, {\n key: 'toJSON',\n value: function toJSON() {\n return util.valueToJSON(this);\n }\n }]);\n\n return Participant;\n}(EventEmitter);\n/**\n * A {@link Participant.SID} is a 34-character string starting with \"PA\"\n * that uniquely identifies a {@link Participant}.\n * @type string\n * @typedef Participant.SID\n */\n\n/**\n * A {@link Participant.Identity} is a string that identifies a\n * {@link Participant}. You can think of it like a name.\n * @typedef {string} Participant.Identity\n */\n\n/**\n * The {@link Participant} has disconnected.\n * @param {Participant} participant - The {@link Participant} that disconnected.\n * @event Participant#disconnected\n */\n\n/**\n * The {@link Participant}'s {@link NetworkQualityLevel} changed.\n * @param {NetworkQualityLevel} networkQualityLevel - The new\n * {@link NetworkQualityLevel}\n * @param {?NetworkQualityStats} networkQualityStats - The {@link NetworkQualityStats}\n * based on which {@link NetworkQualityLevel} is calculated, if any\n * @event Participant#networkQualityLevelChanged\n */\n\n/**\n * The {@link Participant} has reconnected to the {@link Room} after a signaling connection disruption.\n * @event Participant#reconnected\n */\n\n/**\n * The {@link Participant} is reconnecting to the {@link Room} after a signaling connection disruption.\n * @event Participant#reconnecting\n */\n\n/**\n * One of the {@link Participant}'s {@link VideoTrack}'s dimensions changed.\n * @param {VideoTrack} track - The {@link VideoTrack} whose dimensions changed\n * @event Participant#trackDimensionsChanged\n */\n\n/**\n * One of the {@link Participant}'s {@link Track}s started.\n * @param {Track} track - The {@link Track} that started\n * @event Participant#trackStarted\n */\n\n/**\n * Indexed {@link Track}s by {@link Track.ID}.\n * @typedef {object} IndexedTracks\n * @property {Array<{0: Track.ID, 1: AudioTrack}>} audioTracks - Indexed\n * {@link AudioTrack}s\n * @property {Array<{0: Track.ID, 1: DataTrack}>} dataTracks - Indexed\n * {@link DataTrack}s\n * @property {Array<{0: Track.ID, 1: Track}>} tracks - Indexed {@link Track}s\n * @property {Array<{0: Track.ID, 1: VideoTrack}>} videoTracks - Indexed\n * {@link VideoTrack}s\n * @private\n */\n\n/**\n * Index tracks by {@link Track.ID}.\n * @param {Array} tracks\n * @returns {IndexedTracks}\n * @private\n */\n\n\nfunction indexTracksById(tracks) {\n var indexedTracks = tracks.map(function (track) {\n return [track.id, track];\n });\n var indexedAudioTracks = indexedTracks.filter(function (keyValue) {\n return keyValue[1].kind === 'audio';\n });\n var indexedVideoTracks = indexedTracks.filter(function (keyValue) {\n return keyValue[1].kind === 'video';\n });\n var indexedDataTracks = indexedTracks.filter(function (keyValue) {\n return keyValue[1].kind === 'data';\n });\n return {\n audioTracks: indexedAudioTracks,\n dataTracks: indexedDataTracks,\n tracks: indexedTracks,\n videoTracks: indexedVideoTracks\n };\n}\n/**\n * Re-emit {@link ParticipantSignaling} 'stateChanged' events.\n * @param {Participant} participant\n * @param {ParticipantSignaling} signaling\n * @private\n */\n\n\nfunction reemitSignalingStateChangedEvents(participant, signaling) {\n var log = participant._log;\n\n if (participant.state === 'disconnected') {\n return;\n } // Reemit state transition events from the ParticipantSignaling.\n\n\n signaling.on('stateChanged', function stateChanged(state) {\n log.debug('Transitioned to state:', state);\n participant.emit(state, participant);\n\n if (state === 'disconnected') {\n log.debug('Removing Track event reemitters');\n signaling.removeListener('stateChanged', stateChanged);\n signaling.tracks.forEach(function (trackSignaling) {\n var track = participant._tracks.get(trackSignaling.id);\n\n var reemitters = participant._trackEventReemitters.get(trackSignaling.id);\n\n if (track && reemitters) {\n reemitters.forEach(function (reemitter, event) {\n track.removeListener(event, reemitter);\n });\n }\n });\n\n participant._trackEventReemitters.clear();\n\n participant.tracks.forEach(function (publication) {\n participant._trackPublicationEventReemitters.get(publication.trackSid).forEach(function (reemitter, event) {\n publication.removeListener(event, reemitter);\n });\n });\n\n participant._trackPublicationEventReemitters.clear();\n }\n });\n}\n/**\n * Re-emit {@link Track} events.\n * @param {Participant} participant\n * @param {Track} track\n * @param {Track.ID} id\n * @private\n */\n\n\nfunction reemitTrackEvents(participant, track, id) {\n var trackEventReemitters = new Map();\n\n if (participant.state === 'disconnected') {\n return;\n }\n\n participant._getTrackEvents().forEach(function (eventPair) {\n var trackEvent = eventPair[0];\n var participantEvent = eventPair[1];\n trackEventReemitters.set(trackEvent, function () {\n var args = [participantEvent].concat([].slice.call(arguments));\n return participant.emit.apply(participant, _toConsumableArray(args));\n });\n track.on(trackEvent, trackEventReemitters.get(trackEvent));\n });\n\n participant._trackEventReemitters.set(id, trackEventReemitters);\n}\n/**\n * Re-emit {@link TrackPublication} events.\n * @private\n * @param {Participant} participant\n * @param {TrackPublication} publication\n */\n\n\nfunction reemitTrackPublicationEvents(participant, publication) {\n var publicationEventReemitters = new Map();\n\n if (participant.state === 'disconnected') {\n return;\n }\n\n participant._getTrackPublicationEvents().forEach(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n publicationEvent = _ref4[0],\n participantEvent = _ref4[1];\n\n publicationEventReemitters.set(publicationEvent, function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n participant.emit.apply(participant, [participantEvent].concat(args, [publication]));\n });\n publication.on(publicationEvent, publicationEventReemitters.get(publicationEvent));\n });\n\n participant._trackPublicationEventReemitters.set(publication.trackSid, publicationEventReemitters);\n}\n\nmodule.exports = Participant;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nvar _get = function get(object, property, receiver) {\n if (object === null) object = Function.prototype;\n var desc = Object.getOwnPropertyDescriptor(object, property);\n\n if (desc === undefined) {\n var parent = Object.getPrototypeOf(object);\n\n if (parent === null) {\n return undefined;\n } else {\n return get(parent, property, receiver);\n }\n } else if (\"value\" in desc) {\n return desc.value;\n } else {\n var getter = desc.get;\n\n if (getter === undefined) {\n return undefined;\n }\n\n return getter.call(receiver);\n }\n};\n\nfunction _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _require = require('../../util/constants'),\n E = _require.typeErrors,\n trackPriority = _require.trackPriority;\n\nfunction mixinRemoteMediaTrack(AudioOrVideoTrack) {\n /**\n * A {@link RemoteMediaTrack} represents a {@link MediaTrack} published to a\n * {@link Room} by a {@link RemoteParticipant}.\n * @property {boolean} isEnabled - Whether the {@link RemoteMediaTrack} is enabled\n * @property {boolean} isSwitchedOff - Whether the {@link RemoteMediaTrack} is switched off\n * @property {Track.SID} sid - The SID assigned to the {@link RemoteMediaTrack}\n * @property {?Track.Priority} priority - The subscribe priority of the {@link RemoteMediaTrack}\n * @emits RemoteMediaTrack#disabled\n * @emits RemoteMediaTrack#enabled\n * @emits RemoteMediaTrack#switchedOff\n * @emits RemoteMediaTrack#switchedOn\n */\n return function (_AudioOrVideoTrack) {\n _inherits(RemoteMediaTrack, _AudioOrVideoTrack);\n /**\n * Construct a {@link RemoteMediaTrack}.\n * @param {Track.SID} sid\n * @param {MediaTrackReceiver} mediaTrackReceiver\n * @param {boolean} isEnabled\n * @param {function(?Track.Priority): void} setPriority - Set or clear the subscribe\n * {@link Track.Priority} of the {@link RemoteMediaTrack}\n * @param {{log: Log, name: ?string}} options\n */\n\n\n function RemoteMediaTrack(sid, mediaTrackReceiver, isEnabled, setPriority, options) {\n _classCallCheck(this, RemoteMediaTrack);\n\n var _this = _possibleConstructorReturn(this, (RemoteMediaTrack.__proto__ || Object.getPrototypeOf(RemoteMediaTrack)).call(this, mediaTrackReceiver, options));\n\n Object.defineProperties(_this, {\n _isEnabled: {\n value: isEnabled,\n writable: true\n },\n _isSwitchedOff: {\n value: false,\n writable: true\n },\n _priority: {\n value: null,\n writable: true\n },\n _setPriority: {\n value: setPriority\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n return this._isEnabled;\n }\n },\n isSwitchedOff: {\n enumerable: true,\n get: function get() {\n return this._isSwitchedOff;\n }\n },\n priority: {\n enumerable: true,\n get: function get() {\n return this._priority;\n }\n },\n sid: {\n enumerable: true,\n value: sid\n }\n });\n return _this;\n }\n /**\n * Update the subscribe {@link Track.Priority} of the {@link RemoteMediaTrack}.\n * @param {?Track.Priority} priority - the new subscribe {@link Track.Priority};\n * If null, then the subscribe {@link Track.Priority} is cleared, which\n * means the {@link Track.Priority} set by the publisher is now the effective priority.\n * @returns {this}\n * @throws {RangeError}\n */\n\n\n _createClass(RemoteMediaTrack, [{\n key: 'setPriority',\n value: function setPriority(priority) {\n var priorityValues = [null].concat(_toConsumableArray(Object.values(trackPriority)));\n\n if (!priorityValues.includes(priority)) {\n // eslint-disable-next-line new-cap\n throw E.INVALID_VALUE('priority', priorityValues);\n }\n\n if (this._priority !== priority) {\n this._priority = priority;\n\n this._setPriority(priority);\n }\n\n return this;\n }\n /**\n * @private\n * @param {boolean} isEnabled\n */\n\n }, {\n key: '_setEnabled',\n value: function _setEnabled(isEnabled) {\n if (this._isEnabled !== isEnabled) {\n this._isEnabled = isEnabled;\n this.emit(this._isEnabled ? 'enabled' : 'disabled', this);\n }\n }\n /**\n * @private\n * @param {boolean} isSwitchedOff\n */\n\n }, {\n key: '_setSwitchedOff',\n value: function _setSwitchedOff(isSwitchedOff) {\n if (this._isSwitchedOff !== isSwitchedOff) {\n this._isSwitchedOff = isSwitchedOff;\n this.emit(isSwitchedOff ? 'switchedOff' : 'switchedOn', this);\n }\n }\n }, {\n key: 'attach',\n value: function attach(el) {\n var result = _get(RemoteMediaTrack.prototype.__proto__ || Object.getPrototypeOf(RemoteMediaTrack.prototype), 'attach', this).call(this, el);\n\n if (this.mediaStreamTrack.enabled !== true) {\n // NOTE(mpatwardhan): we disable mediaStreamTrack when there\n // are no attchments to it (see notes below). Now that there\n // are attachments reenable the track.\n this.mediaStreamTrack.enabled = true;\n }\n\n return result;\n }\n }, {\n key: 'detach',\n value: function detach(el) {\n var result = _get(RemoteMediaTrack.prototype.__proto__ || Object.getPrototypeOf(RemoteMediaTrack.prototype), 'detach', this).call(this, el);\n\n if (this._attachments.size === 0) {\n // NOTE(mpatwardhan): chrome continues playing webrtc audio\n // track even after audio element is removed from the DOM.\n // https://bugs.chromium.org/p/chromium/issues/detail?id=749928\n // to workaround: here disable the track when\n // there are no elements attached to it.\n this.mediaStreamTrack.enabled = false;\n }\n\n return result;\n }\n }]);\n\n return RemoteMediaTrack;\n }(AudioOrVideoTrack);\n}\n/**\n * A {@link RemoteMediaTrack} was disabled.\n * @param {RemoteMediaTrack} track - The {@link RemoteMediaTrack} that was\n * disabled\n * @event RemoteMediaTrack#disabled\n */\n\n/**\n * A {@link RemoteMediaTrack} was enabled.\n * @param {RemoteMediaTrack} track - The {@link RemoteMediaTrack} that was\n * enabled\n * @event RemoteMediaTrack#enabled\n */\n\n/**\n * A {@link RemoteMediaTrack} was switched off.\n * @param {RemoteMediaTrack} track - The {@link RemoteMediaTrack} that was\n * switched off\n * @event RemoteMediaTrack#switchedOff\n */\n\n/**\n * A {@link RemoteMediaTrack} was switched on.\n * @param {RemoteMediaTrack} track - The {@link RemoteMediaTrack} that was\n * switched on\n * @event RemoteMediaTrack#switchedOn\n */\n\n\nmodule.exports = mixinRemoteMediaTrack;","'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar LocalAudioTrackStats = require('./localaudiotrackstats');\n\nvar LocalVideoTrackStats = require('./localvideotrackstats');\n\nvar RemoteAudioTrackStats = require('./remoteaudiotrackstats');\n\nvar RemoteVideoTrackStats = require('./remotevideotrackstats');\n/**\n * Statistics report for an RTCPeerConnection.\n * @property {string} peerConnectionId - ID of the RTCPeerConnection\n * @property {Array} localAudioTrackStats - List of {@link LocalAudioTrackStats}\n * @property {Array} localVideoTrackStats - List of {@link LocalVideoTrackStats}\n * @property {Array} remoteAudioTrackStats - List of {@link RemoteAudioTrackStats}\n * @property {Array} remoteVideoTrackStats - List of {@link RemoteVideoTrackStats}\n */\n\n\nvar StatsReport =\n/**\n * @param {string} peerConnectionId - RTCPeerConnection ID\n * @param {StandardizedStatsResponse} statsResponse\n */\nfunction StatsReport(peerConnectionId, statsResponse) {\n _classCallCheck(this, StatsReport);\n\n if (typeof peerConnectionId !== 'string') {\n throw new Error('RTCPeerConnection id must be a string');\n }\n\n Object.defineProperties(this, {\n peerConnectionId: {\n value: peerConnectionId,\n enumerable: true\n },\n localAudioTrackStats: {\n value: statsResponse.localAudioTrackStats.map(function (report) {\n return new LocalAudioTrackStats(report.trackId, report);\n }),\n enumerable: true\n },\n localVideoTrackStats: {\n value: statsResponse.localVideoTrackStats.map(function (report) {\n return new LocalVideoTrackStats(report.trackId, report);\n }),\n enumerable: true\n },\n remoteAudioTrackStats: {\n value: statsResponse.remoteAudioTrackStats.map(function (report) {\n return new RemoteAudioTrackStats(report.trackId, report);\n }),\n enumerable: true\n },\n remoteVideoTrackStats: {\n value: statsResponse.remoteVideoTrackStats.map(function (report) {\n return new RemoteVideoTrackStats(report.trackId, report);\n }),\n enumerable: true\n }\n });\n};\n\nmodule.exports = StatsReport;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackStats = require('./trackstats');\n/**\n * Statistics for a {@link LocalTrack}.\n * @extends TrackStats\n * @property {?number} bytesSent - Number of bytes sent\n * @property {?number} packetsSent - Number of packets sent\n * @property {?number} roundTripTime - Round trip time in milliseconds\n */\n\n\nvar LocalTrackStats = function (_TrackStats) {\n _inherits(LocalTrackStats, _TrackStats);\n /**\n * @param {string} trackId - {@link LocalTrack} ID\n * @param {StandardizedTrackStatsReport} statsReport\n */\n\n\n function LocalTrackStats(trackId, statsReport) {\n _classCallCheck(this, LocalTrackStats);\n\n var _this = _possibleConstructorReturn(this, (LocalTrackStats.__proto__ || Object.getPrototypeOf(LocalTrackStats)).call(this, trackId, statsReport));\n\n Object.defineProperties(_this, {\n bytesSent: {\n value: typeof statsReport.bytesSent === 'number' ? statsReport.bytesSent : null,\n enumerable: true\n },\n packetsSent: {\n value: typeof statsReport.packetsSent === 'number' ? statsReport.packetsSent : null,\n enumerable: true\n },\n roundTripTime: {\n value: typeof statsReport.roundTripTime === 'number' ? statsReport.roundTripTime : null,\n enumerable: true\n }\n });\n return _this;\n }\n\n return LocalTrackStats;\n}(TrackStats);\n\nmodule.exports = LocalTrackStats;","'use strict';\n/**\n * Statistics for a {@link Track}.\n * @property {Track.ID} trackId - The {@link Track} ID\n * @property {Track.SID} trackSid - The {@link Track}'s SID when published in\n * in a {@link Room}\n * @property {number} timestamp - A Unix timestamp in milliseconds indicating\n * when the {@link TrackStats} were gathered\n * @property {string} ssrc - The {@link Track}'s SSRC when transmitted over the\n * RTCPeerConnection\n * @property {?number} packetsLost - The number of packets lost\n * @property {?string} codec - The name of the codec used to encode the\n * {@link Track}'s media\n */\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar TrackStats =\n/**\n * @param {string} trackId - {@link Track} ID\n * @param {StandardizedTrackStatsReport} statsReport\n */\nfunction TrackStats(trackId, statsReport) {\n _classCallCheck(this, TrackStats);\n\n if (typeof trackId !== 'string') {\n throw new Error('Track id must be a string');\n }\n\n Object.defineProperties(this, {\n trackId: {\n value: trackId,\n enumerable: true\n },\n trackSid: {\n value: statsReport.trackSid,\n enumerable: true\n },\n timestamp: {\n value: statsReport.timestamp,\n enumerable: true\n },\n ssrc: {\n value: statsReport.ssrc,\n enumerable: true\n },\n packetsLost: {\n value: typeof statsReport.packetsLost === 'number' ? statsReport.packetsLost : null,\n enumerable: true\n },\n codec: {\n value: typeof statsReport.codecName === 'string' ? statsReport.codecName : null,\n enumerable: true\n }\n });\n};\n\nmodule.exports = TrackStats;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar TrackStats = require('./trackstats');\n/**\n * Statistics for a remote {@link Track}.\n * @extends TrackStats\n * @property {?number} bytesReceived - Number of bytes received\n * @property {?number} packetsReceived - Number of packets received\n */\n\n\nvar RemoteTrackStats = function (_TrackStats) {\n _inherits(RemoteTrackStats, _TrackStats);\n /*\n * @param {string} trackId - {@link Track} ID\n * @param {StandardizedTrackStatsReport} statsReport\n */\n\n\n function RemoteTrackStats(trackId, statsReport) {\n _classCallCheck(this, RemoteTrackStats);\n\n var _this = _possibleConstructorReturn(this, (RemoteTrackStats.__proto__ || Object.getPrototypeOf(RemoteTrackStats)).call(this, trackId, statsReport));\n\n Object.defineProperties(_this, {\n bytesReceived: {\n value: typeof statsReport.bytesReceived === 'number' ? statsReport.bytesReceived : null,\n enumerable: true\n },\n packetsReceived: {\n value: typeof statsReport.packetsReceived === 'number' ? statsReport.packetsReceived : null,\n enumerable: true\n }\n });\n return _this;\n }\n\n return RemoteTrackStats;\n}(TrackStats);\n\nmodule.exports = RemoteTrackStats;","// Copyright (c) 2012 Mathieu Turcotte\n// Licensed under the MIT license.\nvar Backoff = require('./lib/backoff');\n\nvar ExponentialBackoffStrategy = require('./lib/strategy/exponential');\n\nvar FibonacciBackoffStrategy = require('./lib/strategy/fibonacci');\n\nvar FunctionCall = require('./lib/function_call.js');\n\nmodule.exports.Backoff = Backoff;\nmodule.exports.FunctionCall = FunctionCall;\nmodule.exports.FibonacciStrategy = FibonacciBackoffStrategy;\nmodule.exports.ExponentialStrategy = ExponentialBackoffStrategy; // Constructs a Fibonacci backoff.\n\nmodule.exports.fibonacci = function (options) {\n return new Backoff(new FibonacciBackoffStrategy(options));\n}; // Constructs an exponential backoff.\n\n\nmodule.exports.exponential = function (options) {\n return new Backoff(new ExponentialBackoffStrategy(options));\n}; // Constructs a FunctionCall for the given function and arguments.\n\n\nmodule.exports.call = function (fn, vargs, callback) {\n var args = Array.prototype.slice.call(arguments);\n fn = args[0];\n vargs = args.slice(1, args.length - 1);\n callback = args[args.length - 1];\n return new FunctionCall(fn, vargs, callback);\n};","// Copyright (c) 2012 Mathieu Turcotte\n// Licensed under the MIT license.\nvar events = require('events');\n\nvar precond = require('precond');\n\nvar util = require('util'); // A class to hold the state of a backoff operation. Accepts a backoff strategy\n// to generate the backoff delays.\n\n\nfunction Backoff(backoffStrategy) {\n events.EventEmitter.call(this);\n this.backoffStrategy_ = backoffStrategy;\n this.maxNumberOfRetry_ = -1;\n this.backoffNumber_ = 0;\n this.backoffDelay_ = 0;\n this.timeoutID_ = -1;\n this.handlers = {\n backoff: this.onBackoff_.bind(this)\n };\n}\n\nutil.inherits(Backoff, events.EventEmitter); // Sets a limit, greater than 0, on the maximum number of backoffs. A 'fail'\n// event will be emitted when the limit is reached.\n\nBackoff.prototype.failAfter = function (maxNumberOfRetry) {\n precond.checkArgument(maxNumberOfRetry > 0, 'Expected a maximum number of retry greater than 0 but got %s.', maxNumberOfRetry);\n this.maxNumberOfRetry_ = maxNumberOfRetry;\n}; // Starts a backoff operation. Accepts an optional parameter to let the\n// listeners know why the backoff operation was started.\n\n\nBackoff.prototype.backoff = function (err) {\n precond.checkState(this.timeoutID_ === -1, 'Backoff in progress.');\n\n if (this.backoffNumber_ === this.maxNumberOfRetry_) {\n this.emit('fail', err);\n this.reset();\n } else {\n this.backoffDelay_ = this.backoffStrategy_.next();\n this.timeoutID_ = setTimeout(this.handlers.backoff, this.backoffDelay_);\n this.emit('backoff', this.backoffNumber_, this.backoffDelay_, err);\n }\n}; // Handles the backoff timeout completion.\n\n\nBackoff.prototype.onBackoff_ = function () {\n this.timeoutID_ = -1;\n this.emit('ready', this.backoffNumber_, this.backoffDelay_);\n this.backoffNumber_++;\n}; // Stops any backoff operation and resets the backoff delay to its inital value.\n\n\nBackoff.prototype.reset = function () {\n this.backoffNumber_ = 0;\n this.backoffStrategy_.reset();\n clearTimeout(this.timeoutID_);\n this.timeoutID_ = -1;\n};\n\nmodule.exports = Backoff;","// Copyright (c) 2012 Mathieu Turcotte\n// Licensed under the MIT license.\nvar events = require('events');\n\nvar util = require('util');\n\nfunction isDef(value) {\n return value !== undefined && value !== null;\n} // Abstract class defining the skeleton for the backoff strategies. Accepts an\n// object holding the options for the backoff strategy:\n//\n// * `randomisationFactor`: The randomisation factor which must be between 0\n// and 1 where 1 equates to a randomization factor of 100% and 0 to no\n// randomization.\n// * `initialDelay`: The backoff initial delay in milliseconds.\n// * `maxDelay`: The backoff maximal delay in milliseconds.\n\n\nfunction BackoffStrategy(options) {\n options = options || {};\n\n if (isDef(options.initialDelay) && options.initialDelay < 1) {\n throw new Error('The initial timeout must be greater than 0.');\n } else if (isDef(options.maxDelay) && options.maxDelay < 1) {\n throw new Error('The maximal timeout must be greater than 0.');\n }\n\n this.initialDelay_ = options.initialDelay || 100;\n this.maxDelay_ = options.maxDelay || 10000;\n\n if (this.maxDelay_ <= this.initialDelay_) {\n throw new Error('The maximal backoff delay must be ' + 'greater than the initial backoff delay.');\n }\n\n if (isDef(options.randomisationFactor) && (options.randomisationFactor < 0 || options.randomisationFactor > 1)) {\n throw new Error('The randomisation factor must be between 0 and 1.');\n }\n\n this.randomisationFactor_ = options.randomisationFactor || 0;\n} // Gets the maximal backoff delay.\n\n\nBackoffStrategy.prototype.getMaxDelay = function () {\n return this.maxDelay_;\n}; // Gets the initial backoff delay.\n\n\nBackoffStrategy.prototype.getInitialDelay = function () {\n return this.initialDelay_;\n}; // Template method that computes and returns the next backoff delay in\n// milliseconds.\n\n\nBackoffStrategy.prototype.next = function () {\n var backoffDelay = this.next_();\n var randomisationMultiple = 1 + Math.random() * this.randomisationFactor_;\n var randomizedDelay = Math.round(backoffDelay * randomisationMultiple);\n return randomizedDelay;\n}; // Computes and returns the next backoff delay. Intended to be overridden by\n// subclasses.\n\n\nBackoffStrategy.prototype.next_ = function () {\n throw new Error('BackoffStrategy.next_() unimplemented.');\n}; // Template method that resets the backoff delay to its initial value.\n\n\nBackoffStrategy.prototype.reset = function () {\n this.reset_();\n}; // Resets the backoff delay to its initial value. Intended to be overridden by\n// subclasses.\n\n\nBackoffStrategy.prototype.reset_ = function () {\n throw new Error('BackoffStrategy.reset_() unimplemented.');\n};\n\nmodule.exports = BackoffStrategy;","// Copyright (c) 2012 Mathieu Turcotte\n// Licensed under the MIT license.\nvar util = require('util');\n\nvar BackoffStrategy = require('./strategy'); // Fibonacci backoff strategy.\n\n\nfunction FibonacciBackoffStrategy(options) {\n BackoffStrategy.call(this, options);\n this.backoffDelay_ = 0;\n this.nextBackoffDelay_ = this.getInitialDelay();\n}\n\nutil.inherits(FibonacciBackoffStrategy, BackoffStrategy);\n\nFibonacciBackoffStrategy.prototype.next_ = function () {\n var backoffDelay = Math.min(this.nextBackoffDelay_, this.getMaxDelay());\n this.nextBackoffDelay_ += this.backoffDelay_;\n this.backoffDelay_ = backoffDelay;\n return backoffDelay;\n};\n\nFibonacciBackoffStrategy.prototype.reset_ = function () {\n this.nextBackoffDelay_ = this.getInitialDelay();\n this.backoffDelay_ = 0;\n};\n\nmodule.exports = FibonacciBackoffStrategy;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar average = require('./average');\n\nvar SenderOrReceiverReport = require('./senderorreceiverreport');\n\nvar sum = require('./sum');\n/**\n * @interface ReceiverSummary\n * @property {number} bitrate\n * @property {number} fractionLost - 0–1\n * @property {number} [jitter] - s (undefined for video tracks in Chrome)\n */\n\n/**\n * @extends SenderOrReceiverReport\n * @property {number} deltaPacketsLost\n * @property {number} deltaPacketsReceived\n * @property {number} [fractionLost] - 0–1 (undefined in Firefox)\n * @property {number} [jitter] - s (undefined for video tracks in Chrome)\n * @property {number} phonyPacketsLost - 0–1\n */\n\n\nvar ReceiverReport = function (_SenderOrReceiverRepo) {\n _inherits(ReceiverReport, _SenderOrReceiverRepo);\n /**\n * @param {StatsId} id\n * @param {TrackId} trackId\n * @param {number} bitrate - bps\n * @param {number} deltaPacketsLost\n * @param {number} deltaPacketsReceived\n * @param {number} [fractionLost] - 0–1 (undefined in Firefox)\n * @param {number} [jitter] - s (undefined for video tracks in Chrome)\n */\n\n\n function ReceiverReport(id, trackId, bitrate, deltaPacketsLost, deltaPacketsReceived, fractionLost, jitter) {\n _classCallCheck(this, ReceiverReport);\n\n var _this = _possibleConstructorReturn(this, (ReceiverReport.__proto__ || Object.getPrototypeOf(ReceiverReport)).call(this, id, trackId, bitrate));\n\n var phonyFractionLost = deltaPacketsReceived > 0 ? deltaPacketsLost / deltaPacketsReceived : 0;\n Object.defineProperties(_this, {\n deltaPacketsLost: {\n enumerable: true,\n value: deltaPacketsLost\n },\n deltaPacketsReceived: {\n enumerable: true,\n value: deltaPacketsReceived\n },\n fractionLost: {\n enumerable: true,\n value: fractionLost\n },\n jitter: {\n enumerable: true,\n value: jitter\n },\n phonyFractionLost: {\n enumerable: true,\n value: phonyFractionLost\n }\n });\n return _this;\n }\n /**\n * Create a {@link ReceiverReport}.\n * @param {string} trackId\n * @param {RTCStats} olderStats\n * @param {RTCStats} newerStats\n * @returns {ReceiverReport}\n */\n\n\n _createClass(ReceiverReport, [{\n key: 'summarize',\n\n /**\n * Summarize the {@link ReceiveReport}.\n * @returns {ReceiverSummary}\n */\n value: function summarize() {\n return {\n bitrate: this.bitrate,\n fractionLost: typeof this.fractionLost === 'number' ? this.fractionLost : this.phonyFractionLost,\n jitter: this.jitter\n };\n }\n }], [{\n key: 'of',\n value: function of(trackId, olderStats, newerStats) {\n if (olderStats.id !== newerStats.id) {\n throw new Error('RTCStats IDs must match');\n }\n\n var secondsElapsed = (newerStats.timestamp - olderStats.timestamp) / 1000;\n var deltaBytesReceived = newerStats.bytesReceived - olderStats.bytesReceived;\n var bitrate = secondsElapsed > 0 ? deltaBytesReceived / secondsElapsed * 8 : 0;\n var deltaPacketsLost = Math.max(newerStats.packetsLost - olderStats.packetsLost, 0);\n var deltaPacketsReceived = newerStats.packetsReceived - olderStats.packetsReceived;\n var fractionLost = newerStats.fractionLost,\n jitter = newerStats.jitter;\n return new ReceiverReport(olderStats.id, trackId, bitrate, deltaPacketsLost, deltaPacketsReceived, fractionLost, jitter);\n }\n /**\n * Summarize {@link ReceiverReport}s by summing and averaging their values.\n * @param {Array} reports\n * @returns {ReceiverSummary}\n */\n\n }, {\n key: 'summarize',\n value: function summarize(reports) {\n var summaries = reports.map(function (report) {\n return report.summarize();\n });\n var bitrate = sum(summaries.map(function (summary) {\n return summary.bitrate;\n }));\n var fractionLost = average(summaries.map(function (summary) {\n return summary.fractionLost;\n }));\n var jitter = average(summaries.map(function (summary) {\n return summary.jitter;\n }));\n return {\n bitrate: bitrate,\n fractionLost: fractionLost,\n jitter: jitter\n };\n }\n }]);\n\n return ReceiverReport;\n}(SenderOrReceiverReport);\n\nmodule.exports = ReceiverReport;","/* eslint no-undefined:0 */\n'use strict';\n/**\n * @param {Array} xs\n * @returns {number|undefined}\n */\n\nfunction average(xs) {\n xs = xs.filter(function (x) {\n return typeof x === 'number';\n });\n return xs.length < 1 ? undefined : xs.reduce(function (y, x) {\n return x + y;\n }) / xs.length;\n}\n\nmodule.exports = average;","'use strict';\n/**\n * @property {StatsId} id\n * @property {TrackId} trackId\n * @property {number} bitrate - bps\n */\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar SenderOrReceiverReport =\n/**\n * Construct a {@link SenderOrReceiverReport}.\n * @param {StatsId} id\n * @param {TrackId} trackId\n * @param {number} bitrate - bps\n */\nfunction SenderOrReceiverReport(id, trackId, bitrate) {\n _classCallCheck(this, SenderOrReceiverReport);\n\n Object.defineProperties(this, {\n id: {\n enumerable: true,\n value: id\n },\n trackId: {\n enumerable: true,\n value: trackId\n },\n bitrate: {\n enumerable: true,\n value: bitrate\n }\n });\n};\n\nmodule.exports = SenderOrReceiverReport;","'use strict';\n/**\n * @param {Array} xs\n * @returns {number}\n */\n\nfunction sum(xs) {\n return xs.reduce(function (y, x) {\n return typeof x === 'number' ? x + y : y;\n }, 0);\n}\n\nmodule.exports = sum;","/* eslint no-undefined:0 */\n'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar average = require('./average');\n\nvar SenderOrReceiverReport = require('./senderorreceiverreport');\n\nvar sum = require('./sum');\n/**\n * @interface SenderSummary\n * @property {number} bitrate\n * @property {number} [rtt] - s (undefined in Chrome)\n */\n\n/**\n * @extends SenderOrReceiverReport\n * @property {number} [rtt] - s (undefined in Chrome)\n */\n\n\nvar SenderReport = function (_SenderOrReceiverRepo) {\n _inherits(SenderReport, _SenderOrReceiverRepo);\n /**\n * Construct a {@link SenderReport}.\n * @param {StatsId} id\n * @param {TrackId} trackId\n * @param {number} bitrate - bps\n * @param {number} [rtt] - s\n */\n\n\n function SenderReport(id, trackId, bitrate, rtt) {\n _classCallCheck(this, SenderReport);\n\n var _this = _possibleConstructorReturn(this, (SenderReport.__proto__ || Object.getPrototypeOf(SenderReport)).call(this, id, trackId, bitrate));\n\n Object.defineProperties(_this, {\n rtt: {\n enumerable: true,\n value: rtt\n }\n });\n return _this;\n }\n /**\n * Create a {@link SenderReport}.\n * @param {string} trackId\n * @param {RTCStats} olderStats\n * @param {RTCStats} newerStats\n * @param {RTCRemoteInboundRtpStreamStats} [newerRemoteStats]\n * @returns {SenderReport}\n */\n\n\n _createClass(SenderReport, null, [{\n key: 'of',\n value: function of(trackId, olderStats, newerStats, newerRemoteStats) {\n if (olderStats.id !== newerStats.id) {\n throw new Error('RTCStats IDs must match');\n }\n\n var secondsElapsed = (newerStats.timestamp - olderStats.timestamp) / 1000;\n var deltaBytesSent = newerStats.bytesSent - olderStats.bytesSent;\n var bitrate = secondsElapsed > 0 ? deltaBytesSent / secondsElapsed * 8 : 0;\n var rtt = newerRemoteStats && typeof newerRemoteStats.roundTripTime === 'number' ? newerRemoteStats.roundTripTime / 1000 : undefined;\n return new SenderReport(olderStats.id, trackId, bitrate, rtt);\n }\n /**\n * Summarize {@link SenderReport}s by summing and averaging their values.\n * @param {Array} reports\n * @returns {SenderSummary}\n */\n\n }, {\n key: 'summarize',\n value: function summarize(reports) {\n var bitrate = sum(reports.map(function (report) {\n return report.bitrate;\n }));\n var rtt = average(reports.map(function (report) {\n return report.rtt;\n }));\n return {\n bitrate: bitrate,\n rtt: rtt\n };\n }\n }]);\n\n return SenderReport;\n}(SenderOrReceiverReport);\n\nmodule.exports = SenderReport;","'use strict';\n/**\n * @property {StatsId} id\n * @property {TrackId} trackId\n * @property {RTCStats} lastStats\n */\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar SenderOrReceiverReportFactory =\n/**\n * @param {StatsId} id\n * @param {TrackId} trackId\n * @param {RTCStats} initialStats\n */\nfunction SenderOrReceiverReportFactory(id, trackId, initialStats) {\n _classCallCheck(this, SenderOrReceiverReportFactory);\n\n Object.defineProperties(this, {\n id: {\n enumerable: true,\n value: id,\n writable: true\n },\n trackId: {\n enumerable: true,\n value: trackId,\n writable: true\n },\n lastStats: {\n enumerable: true,\n value: initialStats,\n writable: true\n }\n });\n};\n\nmodule.exports = SenderOrReceiverReportFactory;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar EventEmitter = require('events').EventEmitter;\n/**\n * Represents recording state\n * @extends EventEmitter\n * @property {?boolean} isEnabled\n */\n\n\nvar RecordingSignaling = function (_EventEmitter) {\n _inherits(RecordingSignaling, _EventEmitter);\n /**\n * Construct a {@link RecordingSignaling}.\n */\n\n\n function RecordingSignaling() {\n _classCallCheck(this, RecordingSignaling);\n\n var _this = _possibleConstructorReturn(this, (RecordingSignaling.__proto__ || Object.getPrototypeOf(RecordingSignaling)).call(this));\n\n Object.defineProperties(_this, {\n _isEnabled: {\n value: null,\n writable: true\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n return this._isEnabled;\n }\n }\n });\n return _this;\n }\n /**\n * Disable the {@link RecordingSignaling} if it is not already disabled.\n * @return {this}\n */\n\n\n _createClass(RecordingSignaling, [{\n key: 'disable',\n value: function disable() {\n return this.enable(false);\n }\n /**\n * Enable (or disable) the {@link RecordingSignaling} if it is not already enabled\n * (or disabled).\n * @param {boolean} [enabled=true]\n * @return {this}\n */\n\n }, {\n key: 'enable',\n value: function enable(enabled) {\n enabled = typeof enabled === 'boolean' ? enabled : true;\n\n if (this.isEnabled !== enabled) {\n this._isEnabled = enabled;\n this.emit('updated');\n }\n\n return this;\n }\n }]);\n\n return RecordingSignaling;\n}(EventEmitter);\n/**\n * Emitted whenever the {@link RecordingSignaling} is updated\n * @event RecordingSignaling#updated\n */\n\n\nmodule.exports = RecordingSignaling;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar DefaultRecordingSignaling = require('./recording');\n\nvar StateMachine = require('../statemachine');\n\nvar DefaultTimeout = require('../util/timeout');\n\nvar _require = require('../util/twilio-video-errors'),\n MediaConnectionError = _require.MediaConnectionError,\n MediaDTLSTransportFailedError = _require.MediaDTLSTransportFailedError,\n SignalingConnectionDisconnectedError = _require.SignalingConnectionDisconnectedError;\n/*\nRoomSignaling States\n-----------------------\n\n +-----------+ +--------------+\n | | | |\n | connected |---->| disconnected |\n | | | |\n +-----------+ +--------------+\n | ^ ^\n | | |\n | | +--------------+\n | +---| |\n | | reconnecting |\n +----->| |\n +--------------+\n\n*/\n\n\nvar states = {\n connected: ['reconnecting', 'disconnected'],\n reconnecting: ['connected', 'disconnected'],\n disconnected: []\n};\n/**\n * A {@link Room} implementation\n * @extends StateMachine\n * @property {RTCPeerConnectionState} connectionState\n * @property {?Participant.SID} dominantSpeakerSid\n * @property {ParticipantSignaling} localParticipant\n * @property {RTCIceConnectionState} iceConnectionState\n * @property {string} name\n * @property {Map} participants\n * @property {RecordingSignaling} recording\n * @property {Room.SID} sid\n * @property {string} state - \"connected\", \"reconnecting\", or \"disconnected\"\n * @property {string} signalingConnectionState - \"connected\",\n * \"reconnecting\", or \"disconnected\"\n * @emits RoomSignaling#connectionStateChanged\n * @emits RoomSignaling#dominantSpeakerChanged\n * @emits RoomSignaling#iceConnectionStateChanged\n * @emits RoomSignaling#signalingConnectionStateChanged\n */\n\nvar RoomSignaling = function (_StateMachine) {\n _inherits(RoomSignaling, _StateMachine);\n /**\n * Construct a {@link RoomSignaling}.\n * @param {ParticipantSignaling} localParticipant\n * @param {Room.SID} sid\n * @param {string} name\n * @param {object} options\n */\n\n\n function RoomSignaling(localParticipant, sid, name, options) {\n _classCallCheck(this, RoomSignaling);\n\n options = Object.assign({\n RecordingSignaling: DefaultRecordingSignaling,\n Timeout: DefaultTimeout\n }, options);\n\n var _this = _possibleConstructorReturn(this, (RoomSignaling.__proto__ || Object.getPrototypeOf(RoomSignaling)).call(this, 'connected', states));\n\n var RecordingSignaling = options.RecordingSignaling;\n var sessionTimeout = new options.Timeout(function () {\n _this._disconnect(_this._reconnectingError);\n }, options.sessionTimeout, false);\n Object.defineProperties(_this, {\n _mediaConnectionIsReconnecting: {\n writable: true,\n value: false\n },\n _options: {\n value: options\n },\n _reconnectingError: {\n value: null,\n writable: true\n },\n _sessionTimeout: {\n value: sessionTimeout\n },\n dominantSpeakerSid: {\n enumerable: true,\n value: null,\n writable: true\n },\n localParticipant: {\n enumerable: true,\n value: localParticipant\n },\n name: {\n enumerable: true,\n value: name\n },\n participants: {\n enumerable: true,\n value: new Map()\n },\n recording: {\n enumerable: true,\n value: new RecordingSignaling()\n },\n sid: {\n enumerable: true,\n value: sid\n }\n });\n\n _this.on('connectionStateChanged', function () {\n if (_this.connectionState === 'failed' && !['disconnected', 'failed'].includes(_this.iceConnectionState)) {\n _this._disconnect(new MediaDTLSTransportFailedError());\n }\n });\n\n _this.on('iceConnectionStateChanged', function () {\n return maybeUpdateState(_this);\n });\n\n _this.on('signalingConnectionStateChanged', function () {\n return maybeUpdateState(_this);\n }); // NOTE(mmalavalli): In case \"iceConnectionState\" is already failed, update\n // the RoomSignaling state. setTimeout() ensures that the state is updated\n // after RoomV2's constructor is fully executed, thereby making \"signalingConnectionState\"\n // available here.\n\n\n setTimeout(function () {\n return maybeUpdateState(_this);\n });\n return _this;\n }\n /**\n * Disconnect, possibly with an Error.\n * @private\n * @param {Error} [error]\n * @returns {boolean}\n */\n\n\n _createClass(RoomSignaling, [{\n key: '_disconnect',\n value: function _disconnect(error) {\n if (this.state !== 'disconnected') {\n this.preempt('disconnected', null, [error]);\n return true;\n }\n\n return false;\n }\n /**\n * Connect {@link RemoteParticipantSignaling} to the {@link RoomSignaling}.\n * @param {RemoteParticipantSignaling} participant\n * @returns {boolean}\n */\n\n }, {\n key: 'connectParticipant',\n value: function connectParticipant(participant) {\n var self = this;\n\n if (participant.state === 'disconnected') {\n return false;\n }\n\n if (this.participants.has(participant.sid)) {\n return false;\n }\n\n this.participants.set(participant.sid, participant);\n participant.on('stateChanged', function stateChanged(state) {\n if (state === 'disconnected') {\n participant.removeListener('stateChanged', stateChanged);\n self.participants[\"delete\"](participant.sid);\n self.emit('participantDisconnected', participant);\n }\n });\n this.emit('participantConnected', participant);\n return true;\n }\n /**\n * Disconnect.\n * @returns {boolean}\n */\n\n }, {\n key: 'disconnect',\n value: function disconnect() {\n return this._disconnect();\n }\n /**\n * Set (or unset) the Dominant Speaker.\n * @param {?Participant.SID} dominantSpeakerSid\n * @returns {void}\n */\n\n }, {\n key: 'setDominantSpeaker',\n value: function setDominantSpeaker(dominantSpeakerSid) {\n this.dominantSpeakerSid = dominantSpeakerSid;\n this.emit('dominantSpeakerChanged');\n }\n }]);\n\n return RoomSignaling;\n}(StateMachine);\n/**\n * @event RoomSignaling#event:connectionStateChanged\n */\n\n/**\n * @event RoomSignaling#event:dominantSpeakerChanged\n */\n\n/**\n * {@link RemoteParticipantSignaling} connected to the {@link RoomSignaling}.\n * @event RoomSignaling#event:participantConnected\n * @param {RemoteParticipantSignaling} participantSignaling\n */\n\n/**\n * {@link RemoteParticipantSignaling} disconnected from the {@link RoomSignaling}.\n * @event RoomSignaling#event:participantDisconnected\n * @param {RemoteParticipantSignaling} participantSignaling\n */\n\n/**\n * @event RoomSignaling#event:iceConnectionStateChanged\n */\n\n/**\n * @event RoomSignaling#event:signalingConnectionStateChanged\n */\n\n/**\n * Maybe update the {@link RoomSignaling} state.\n * @param {RoomSignaling} roomSignaling\n */\n\n\nfunction maybeUpdateState(roomSignaling) {\n if (roomSignaling.state === 'disconnected' || roomSignaling.signalingConnectionState === 'disconnected') {\n roomSignaling._sessionTimeout.clear();\n\n return;\n }\n\n var newState = void 0;\n\n if (roomSignaling.signalingConnectionState === 'reconnecting') {\n newState = roomSignaling.signalingConnectionState;\n } else if (roomSignaling.iceConnectionState === 'failed') {\n roomSignaling._mediaConnectionIsReconnecting = true;\n newState = 'reconnecting';\n } else if (roomSignaling.iceConnectionState === 'new' || roomSignaling.iceConnectionState === 'checking') {\n newState = roomSignaling._mediaConnectionIsReconnecting ? 'reconnecting' : 'connected';\n } else {\n roomSignaling._mediaConnectionIsReconnecting = false;\n roomSignaling._reconnectingError = null;\n\n roomSignaling._sessionTimeout.clear();\n\n newState = 'connected';\n }\n\n if (newState === roomSignaling.state) {\n return;\n }\n\n if (newState === 'reconnecting') {\n roomSignaling._reconnectingError = roomSignaling.signalingConnectionState === 'reconnecting' ? new SignalingConnectionDisconnectedError() : new MediaConnectionError();\n\n roomSignaling._sessionTimeout.start();\n\n roomSignaling.preempt(newState, null, [roomSignaling._reconnectingError]);\n } else {\n roomSignaling.preempt(newState);\n }\n}\n\nmodule.exports = RoomSignaling;","'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar NetworkQualitySendStats = require('./networkqualitysendstats');\n\nvar NetworkQualityRecvStats = require('./networkqualityrecvstats');\n/**\n * Network quality statistics shared between a {@link Participant}'s audio or video.\n * @property {NetworkQualityLevel} send - {@link NetworkQualityLevel} of the\n * {@link Participant}'s published audio or video\n * @property {number} recv - {@link NetworkQualityLevel} of the\n * {@link Participant}'s subscribed audio or video\n * @property {?NetworkQualitySendOrRecvStats} sendStats - {@link NetworkQualitySendOrRecvStats}\n * based on which {@link NetworkQualityMediaStats}#send\n * is calculated\n * @property {?NetworkQualitySendOrRecvStats} recvStats - {@link NetworkQualitySendOrRecvStats}\n * based on which {@link NetworkQualityMediaStats}#recv\n * is calculated\n */\n\n\nvar NetworkQualityMediaStats =\n/**\n * Construct a {@link NetworkQualityMediaStats}.\n * @param {MediaLevels} mediaLevels\n */\nfunction NetworkQualityMediaStats(_ref) {\n var send = _ref.send,\n recv = _ref.recv,\n _ref$sendStats = _ref.sendStats,\n sendStats = _ref$sendStats === undefined ? null : _ref$sendStats,\n _ref$recvStats = _ref.recvStats,\n recvStats = _ref$recvStats === undefined ? null : _ref$recvStats;\n\n _classCallCheck(this, NetworkQualityMediaStats);\n\n Object.defineProperties(this, {\n send: {\n value: send,\n enumerable: true\n },\n recv: {\n value: recv,\n enumerable: true\n },\n sendStats: {\n value: sendStats ? new NetworkQualitySendStats(sendStats) : null,\n enumerable: true\n },\n recvStats: {\n value: recvStats ? new NetworkQualityRecvStats(recvStats) : null,\n enumerable: true\n }\n });\n};\n\nmodule.exports = NetworkQualityMediaStats;","'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar NetworkQualityBandwidthStats = require('./networkqualitybandwidthstats');\n\nvar NetworkQualityFractionLostStats = require('./networkqualityfractionloststats');\n\nvar NetworkQualityLatencyStats = require('./networkqualitylatencystats');\n/**\n * Network quality statistics shared between {@link NetworkQualitySendStats} and\n * {@link NetworkQualityRecvStats} based on which a {@link Participant}'s\n * {@link NetworkQualityMediaStats}#send or\n * {@link NetworkQualityMediaStats}#recv is calculated.\n * @property {?NetworkQualityBandwidthStats} bandwidth - bandwidth statistics\n * @property {?NetworkQualityLatencyStats} latency - latency statistics\n * @property {?NetworkQualityFractionLostStats} fractionLost - fraction lost statistics\n */\n\n\nvar NetworkQualitySendOrRecvStats =\n/**\n * Construct a {@link NetworkQualitySendOrRecvStats}.\n * @param {SendOrRecvStats} sendOrRecvStats\n */\nfunction NetworkQualitySendOrRecvStats(_ref) {\n var _ref$bandwidth = _ref.bandwidth,\n bandwidth = _ref$bandwidth === undefined ? null : _ref$bandwidth,\n _ref$fractionLost = _ref.fractionLost,\n fractionLost = _ref$fractionLost === undefined ? null : _ref$fractionLost,\n _ref$latency = _ref.latency,\n latency = _ref$latency === undefined ? null : _ref$latency;\n\n _classCallCheck(this, NetworkQualitySendOrRecvStats);\n\n Object.defineProperties(this, {\n bandwidth: {\n value: bandwidth ? new NetworkQualityBandwidthStats(bandwidth) : null,\n enumerable: true\n },\n fractionLost: {\n value: fractionLost ? new NetworkQualityFractionLostStats(fractionLost) : null,\n enumerable: true\n },\n latency: {\n value: latency ? new NetworkQualityLatencyStats(latency) : null,\n enumerable: true\n }\n });\n};\n\nmodule.exports = NetworkQualitySendOrRecvStats;","'use strict';\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (_typeof(call) === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + _typeof(superClass));\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar _require = require('events'),\n EventEmitter = _require.EventEmitter;\n/**\n * A {@link Track} implementation\n * @extends EventEmitter\n * @property {Track.Kind} kind\n * @property {string} name\n */\n\n\nvar TrackSignaling = function (_EventEmitter) {\n _inherits(TrackSignaling, _EventEmitter);\n /**\n * Construct a {@link TrackSignaling}.\n * @param {string} name\n * @param {Track.Kind} kind\n * @param {boolean} isEnabled\n * @param {Track.Priority} priority\n */\n\n\n function TrackSignaling(name, kind, isEnabled, priority) {\n _classCallCheck(this, TrackSignaling);\n\n var _this = _possibleConstructorReturn(this, (TrackSignaling.__proto__ || Object.getPrototypeOf(TrackSignaling)).call(this));\n\n var sid = null;\n Object.defineProperties(_this, {\n _error: {\n value: null,\n writable: true\n },\n _isEnabled: {\n value: isEnabled,\n writable: true\n },\n _priority: {\n value: priority,\n writable: true\n },\n _trackTransceiver: {\n value: null,\n writable: true\n },\n _sid: {\n get: function get() {\n return sid;\n },\n set: function set(_sid) {\n if (sid === null) {\n sid = _sid;\n }\n }\n },\n kind: {\n enumerable: true,\n value: kind\n },\n name: {\n enumerable: true,\n value: name\n }\n });\n return _this;\n }\n /**\n * Non-null if publication or subscription failed.\n * @property {?Error} error\n */\n\n\n _createClass(TrackSignaling, [{\n key: 'disable',\n\n /**\n * Disable the {@link TrackSignaling} if it is not already disabled.\n * @return {this}\n */\n value: function disable() {\n return this.enable(false);\n }\n /**\n * Enable (or disable) the {@link TrackSignaling} if it is not already enabled\n * (or disabled).\n * @param {boolean} [enabled=true]\n * @return {this}\n */\n\n }, {\n key: 'enable',\n value: function enable(enabled) {\n enabled = typeof enabled === 'boolean' ? enabled : true;\n\n if (this.isEnabled !== enabled) {\n this._isEnabled = enabled;\n this.emit('updated');\n }\n\n return this;\n }\n /**\n * Set the {@link TrackTransceiver} on the {@link TrackSignaling}.\n * @param {TrackTransceiver} trackTransceiver\n * @returns {this}\n */\n\n }, {\n key: 'setTrackTransceiver',\n value: function setTrackTransceiver(trackTransceiver) {\n trackTransceiver = trackTransceiver || null;\n\n if (this.trackTransceiver !== trackTransceiver) {\n this._trackTransceiver = trackTransceiver;\n this.emit('updated');\n }\n\n return this;\n }\n /**\n * Set the SID on the {@link TrackSignaling} once.\n * @param {string} sid\n * @returns {this}\n */\n\n }, {\n key: 'setSid',\n value: function setSid(sid) {\n if (this.sid === null) {\n this._sid = sid;\n this.emit('updated');\n }\n\n return this;\n }\n }, {\n key: 'error',\n get: function get() {\n return this._error;\n }\n /**\n * Whether the {@link TrackSignaling} is enabled.\n * @property {boolean}\n */\n\n }, {\n key: 'isEnabled',\n get: function get() {\n return this._isEnabled;\n }\n /**\n * The {@link TrackSignaling}'s priority.\n * @property {Track.Priority}\n */\n\n }, {\n key: 'priority',\n get: function get() {\n return this._priority;\n }\n /**\n * The {@link TrackSignaling}'s {@link Track.SID}.\n * @property {Track.SID}\n */\n\n }, {\n key: 'sid',\n get: function get() {\n return this._sid;\n }\n /**\n * The {@link TrackSignaling}'s {@link TrackTransceiver}.\n * @property {TrackTransceiver}\n */\n\n }, {\n key: 'trackTransceiver',\n get: function get() {\n return this._trackTransceiver;\n }\n }]);\n\n return TrackSignaling;\n}(EventEmitter);\n/**\n * Emitted whenever the {@link TrackSignaling} is updated\n * @event TrackSignaling#updated\n */\n\n\nmodule.exports = TrackSignaling;","module.exports = WebSocket;","'use strict';\n\nvar defaultCreateLocalTracks = require('./createlocaltracks');\n\nvar DEFAULT_LOG_LEVEL = require('./util/constants').DEFAULT_LOG_LEVEL;\n/**\n * Request a {@link LocalAudioTrack} or {@link LocalVideoTrack}.\n * @param {Track.Kind} kind - \"audio\" or \"video\"\n * @param {CreateLocalTrackOptions} [options]\n * @returns {Promise}\n * @private\n */\n\n\nfunction createLocalTrack(kind, options) {\n options = Object.assign({\n createLocalTracks: defaultCreateLocalTracks,\n logLevel: DEFAULT_LOG_LEVEL\n }, options);\n var createOptions = {};\n createOptions.logLevel = options.logLevel;\n delete options.logLevel;\n var createLocalTracks = options.createLocalTracks;\n delete options.createLocalTracks;\n createOptions[kind] = Object.keys(options).length > 0 ? options : true;\n return createLocalTracks(createOptions).then(function (localTracks) {\n return localTracks[0];\n });\n}\n/**\n * Request a {@link LocalAudioTrack}.\n * @alias module:twilio-video.createLocalAudioTrack\n * @param {CreateLocalTrackOptions} [options] - Options for requesting a {@link LocalAudioTrack}\n * @returns {Promise}\n * @example\n * var Video = require('twilio-video');\n *\n * // Connect to the Room with just video\n * Video.connect('my-token', {\n * name: 'my-cool-room',\n * video: true\n * }).then(function(room) {\n * // Add audio after connecting to the Room\n * Video.createLocalAudioTrack().then(function(localTrack) {\n * room.localParticipant.publishTrack(localTrack);\n * });\n * });\n * @example\n * var Video = require('twilio-video');\n *\n * // Request the default LocalAudioTrack with a custom name\n * Video.createLocalAudioTrack({ name: 'microphone' }).then(function(localTrack) {\n * console.log(localTrack.name); // 'microphone'\n * });\n */\n\n\nfunction createLocalAudioTrack(options) {\n return createLocalTrack('audio', options);\n}\n/**\n * Request a {@link LocalVideoTrack}.\n * @alias module:twilio-video.createLocalVideoTrack\n * @param {CreateLocalTrackOptions} [options] - Options for requesting a {@link LocalVideoTrack}\n * @returns {Promise}\n * @example\n * var Video = require('twilio-video');\n *\n * // Connect to the Room with just audio\n * Video.connect('my-token', {\n * name: 'my-cool-room',\n * audio: true\n * }).then(function(room) {\n * // Add video after connecting to the Room\n * Video.createLocalVideoTrack().then(function(localTrack) {\n * room.localParticipant.publishTrack(localTrack);\n * });\n * });\n * @example\n * var Video = require('twilio-video');\n *\n * // Request the default LocalVideoTrack with a custom name\n * Video.createLocalVideoTrack({ name: 'camera' }).then(function(localTrack) {\n * console.log(localTrack.name); // 'camera'\n * });\n */\n\n\nfunction createLocalVideoTrack(options) {\n return createLocalTrack('video', options);\n}\n/**\n * Create {@link LocalTrack} options. Apart from the properties listed here, you can\n * also specify any of the MediaTrackConstraints\n * properties.\n * @typedef {MediaTrackConstraints} CreateLocalTrackOptions\n * @property {LogLevel|LogLevels} logLevel\n * @property {string} [name] - The {@link LocalTrack}'s name; by default,\n * it is set to the {@link LocalTrack}'s ID.\n * @property {boolean} [workaroundWebKitBug180748=false] - Only valid for\n * {@link LocalAudioTrack}s; setting this attempts to workaround WebKit Bug\n * 180748, where, in Safari, getUserMedia may return a silent audio\n * MediaStreamTrack.\n */\n\n\nmodule.exports = {\n audio: createLocalAudioTrack,\n video: createLocalVideoTrack\n};","// Action Cable provides the framework to deal with WebSockets in Rails.\n// You can generate new channels where WebSocket features live using the `rails generate channel` command.\n\nimport { createConsumer } from \"@rails/actioncable\"\n\nexport default createConsumer()\n","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(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\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\n for (var _len = arguments.length, messages = Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n\n messages.push(Date.now());\n\n (_adapters$logger = adapters.logger).log.apply(_adapters$logger, [\"[ActionCable]\"].concat(messages));\n }\n }\n };\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\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 var now = function now() {\n return new Date().getTime();\n };\n\n var secondsSince = function secondsSince(time) {\n return (now() - time) / 1e3;\n };\n\n var clamp = function clamp(number, min, max) {\n return Math.max(min, Math.min(max, number));\n };\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\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\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\n ConnectionMonitor.prototype.isRunning = function isRunning() {\n return this.startedAt && !this.stoppedAt;\n };\n\n ConnectionMonitor.prototype.recordPing = function recordPing() {\n this.pingedAt = now();\n };\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\n ConnectionMonitor.prototype.recordDisconnect = function recordDisconnect() {\n this.disconnectedAt = now();\n logger.log(\"ConnectionMonitor recorded disconnect\");\n };\n\n ConnectionMonitor.prototype.startPolling = function startPolling() {\n this.stopPolling();\n this.poll();\n };\n\n ConnectionMonitor.prototype.stopPolling = function stopPolling() {\n clearTimeout(this.pollTimeout);\n };\n\n ConnectionMonitor.prototype.poll = function poll() {\n var _this = this;\n\n this.pollTimeout = setTimeout(function () {\n _this.reconnectIfStale();\n\n _this.poll();\n }, this.getPollInterval());\n };\n\n ConnectionMonitor.prototype.getPollInterval = function getPollInterval() {\n var _constructor$pollInte = this.constructor.pollInterval,\n min = _constructor$pollInte.min,\n max = _constructor$pollInte.max,\n multiplier = _constructor$pollInte.multiplier;\n var interval = multiplier * Math.log(this.reconnectAttempts + 1);\n return Math.round(clamp(interval, min, max) * 1e3);\n };\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\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\n ConnectionMonitor.prototype.connectionIsStale = function connectionIsStale() {\n return secondsSince(this.pingedAt ? this.pingedAt : this.startedAt) > this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.disconnectedRecently = function disconnectedRecently() {\n return this.disconnectedAt && secondsSince(this.disconnectedAt) < this.constructor.staleThreshold;\n };\n\n ConnectionMonitor.prototype.visibilityDidChange = function visibilityDidChange() {\n var _this2 = this;\n\n if (document.visibilityState === \"visible\") {\n setTimeout(function () {\n if (_this2.connectionIsStale() || !_this2.connection.isOpen()) {\n logger.log(\"ConnectionMonitor reopening stale connection on visibilitychange. visbilityState = \" + document.visibilityState);\n\n _this2.connection.reopen();\n }\n }, 200);\n }\n };\n\n return ConnectionMonitor;\n }();\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,\n protocols = INTERNAL.protocols;\n var supportedProtocols = protocols.slice(0, protocols.length - 1);\n var indexOf = [].indexOf;\n\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\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\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\n if (this.webSocket) {\n this.uninstallEventHandlers();\n }\n\n this.webSocket = new adapters.WebSocket(this.consumer.url, protocols);\n this.installEventHandlers();\n this.monitor.start();\n return true;\n }\n };\n\n Connection.prototype.close = function close() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n allowReconnect: true\n },\n allowReconnect = _ref.allowReconnect;\n\n if (!allowReconnect) {\n this.monitor.stop();\n }\n\n if (this.isActive()) {\n return this.webSocket.close();\n }\n };\n\n Connection.prototype.reopen = function reopen() {\n logger.log(\"Reopening WebSocket, current state is \" + this.getState());\n\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\n Connection.prototype.getProtocol = function getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol;\n }\n };\n\n Connection.prototype.isOpen = function isOpen() {\n return this.isState(\"open\");\n };\n\n Connection.prototype.isActive = function isActive() {\n return this.isState(\"open\", \"connecting\");\n };\n\n Connection.prototype.isProtocolSupported = function isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0;\n };\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\n return indexOf.call(states, this.getState()) >= 0;\n };\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\n return null;\n };\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\n Connection.prototype.uninstallEventHandlers = function uninstallEventHandlers() {\n for (var eventName in this.events) {\n this.webSocket[\"on\" + eventName] = function () {};\n }\n };\n\n return Connection;\n }();\n\n Connection.reopenDelay = 500;\n Connection.prototype.events = {\n message: function message(event) {\n if (!this.isProtocolSupported()) {\n return;\n }\n\n var _JSON$parse = JSON.parse(event.data),\n identifier = _JSON$parse.identifier,\n message = _JSON$parse.message,\n reason = _JSON$parse.reason,\n reconnect = _JSON$parse.reconnect,\n type = _JSON$parse.type;\n\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 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\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\n if (this.disconnected) {\n return;\n }\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\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\n return object;\n };\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\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\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\n Subscription.prototype.unsubscribe = function unsubscribe() {\n return this.consumer.subscriptions.remove(this);\n };\n\n return Subscription;\n }();\n\n var Subscriptions = function () {\n function Subscriptions(consumer) {\n classCallCheck(this, Subscriptions);\n this.consumer = consumer;\n this.subscriptions = [];\n }\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\n Subscriptions.prototype.add = function add(subscription) {\n this.subscriptions.push(subscription);\n this.consumer.ensureActiveConnection();\n this.notify(subscription, \"initialized\");\n this.sendCommand(subscription, \"subscribe\");\n return subscription;\n };\n\n Subscriptions.prototype.remove = function remove(subscription) {\n this.forget(subscription);\n\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\");\n }\n\n return subscription;\n };\n\n Subscriptions.prototype.reject = function reject(identifier) {\n var _this = this;\n\n return this.findAll(identifier).map(function (subscription) {\n _this.forget(subscription);\n\n _this.notify(subscription, \"rejected\");\n\n return subscription;\n });\n };\n\n Subscriptions.prototype.forget = function forget(subscription) {\n this.subscriptions = this.subscriptions.filter(function (s) {\n return s !== subscription;\n });\n return subscription;\n };\n\n Subscriptions.prototype.findAll = function findAll(identifier) {\n return this.subscriptions.filter(function (s) {\n return s.identifier === identifier;\n });\n };\n\n Subscriptions.prototype.reload = function reload() {\n var _this2 = this;\n\n return this.subscriptions.map(function (subscription) {\n return _this2.sendCommand(subscription, \"subscribe\");\n });\n };\n\n Subscriptions.prototype.notifyAll = function notifyAll(callbackName) {\n var _this3 = this;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return this.subscriptions.map(function (subscription) {\n return _this3.notify.apply(_this3, [subscription, callbackName].concat(args));\n });\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\n var subscriptions = void 0;\n\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription);\n } else {\n subscriptions = [subscription];\n }\n\n return subscriptions.map(function (subscription) {\n return typeof subscription[callbackName] === \"function\" ? subscription[callbackName].apply(subscription, args) : undefined;\n });\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\n return Subscriptions;\n }();\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\n Consumer.prototype.send = function send(data) {\n return this.connection.send(data);\n };\n\n Consumer.prototype.connect = function connect() {\n return this.connection.open();\n };\n\n Consumer.prototype.disconnect = function disconnect() {\n return this.connection.close({\n allowReconnect: false\n });\n };\n\n Consumer.prototype.ensureActiveConnection = function ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open();\n }\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\n function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url();\n }\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\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\n function getConfig(name) {\n var element = document.head.querySelector(\"meta[name='action-cable-\" + name + \"']\");\n\n if (element) {\n return element.getAttribute(\"content\");\n }\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.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 * MoveTo - A lightweight scroll animation javascript library without any dependency.\n * Version 1.8.2 (28-06-2019 14:30)\n * Licensed under MIT\n * Copyright 2019 Hasan Aydoğdu \n */\n\"use strict\";\n\nvar MoveTo = function () {\n /**\n * Defaults\n * @type {object}\n */\n var defaults = {\n tolerance: 0,\n duration: 800,\n easing: 'easeOutQuart',\n container: window,\n callback: function callback() {}\n };\n /**\n * easeOutQuart Easing Function\n * @param {number} t - current time\n * @param {number} b - start value\n * @param {number} c - change in value\n * @param {number} d - duration\n * @return {number} - calculated value\n */\n\n function easeOutQuart(t, b, c, d) {\n t /= d;\n t--;\n return -c * (t * t * t * t - 1) + b;\n }\n /**\n * Merge two object\n *\n * @param {object} obj1\n * @param {object} obj2\n * @return {object} merged object\n */\n\n\n function mergeObject(obj1, obj2) {\n var obj3 = {};\n Object.keys(obj1).forEach(function (propertyName) {\n obj3[propertyName] = obj1[propertyName];\n });\n Object.keys(obj2).forEach(function (propertyName) {\n obj3[propertyName] = obj2[propertyName];\n });\n return obj3;\n }\n\n ;\n /**\n * Converts camel case to kebab case\n * @param {string} val the value to be converted\n * @return {string} the converted value\n */\n\n function kebabCase(val) {\n return val.replace(/([A-Z])/g, function ($1) {\n return '-' + $1.toLowerCase();\n });\n }\n\n ;\n /**\n * Count a number of item scrolled top\n * @param {Window|HTMLElement} container\n * @return {number}\n */\n\n function countScrollTop(container) {\n if (container instanceof HTMLElement) {\n return container.scrollTop;\n }\n\n return container.pageYOffset;\n }\n\n ;\n /**\n * MoveTo Constructor\n * @param {object} options Options\n * @param {object} easeFunctions Custom ease functions\n */\n\n function MoveTo() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var easeFunctions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.options = mergeObject(defaults, options);\n this.easeFunctions = mergeObject({\n easeOutQuart: easeOutQuart\n }, easeFunctions);\n }\n /**\n * Register a dom element as trigger\n * @param {HTMLElement} dom Dom trigger element\n * @param {function} callback Callback function\n * @return {function|void} unregister function\n */\n\n\n MoveTo.prototype.registerTrigger = function (dom, callback) {\n var _this = this;\n\n if (!dom) {\n return;\n }\n\n var href = dom.getAttribute('href') || dom.getAttribute('data-target'); // The element to be scrolled\n\n var target = href && href !== '#' ? document.getElementById(href.substring(1)) : document.body;\n var options = mergeObject(this.options, _getOptionsFromTriggerDom(dom, this.options));\n\n if (typeof callback === 'function') {\n options.callback = callback;\n }\n\n var listener = function listener(e) {\n e.preventDefault();\n\n _this.move(target, options);\n };\n\n dom.addEventListener('click', listener, false);\n return function () {\n return dom.removeEventListener('click', listener, false);\n };\n };\n /**\n * Move\n * Scrolls to given element by using easeOutQuart function\n * @param {HTMLElement|number} target Target element to be scrolled or target position\n * @param {object} options Custom options\n */\n\n\n MoveTo.prototype.move = function (target) {\n var _this2 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (target !== 0 && !target) {\n return;\n }\n\n options = mergeObject(this.options, options);\n var distance = typeof target === 'number' ? target : target.getBoundingClientRect().top;\n var from = countScrollTop(options.container);\n var startTime = null;\n var lastYOffset;\n distance -= options.tolerance; // rAF loop\n\n var loop = function loop(currentTime) {\n var currentYOffset = countScrollTop(_this2.options.container);\n\n if (!startTime) {\n // To starts time from 1, we subtracted 1 from current time\n // If time starts from 1 The first loop will not do anything,\n // because easing value will be zero\n startTime = currentTime - 1;\n }\n\n var timeElapsed = currentTime - startTime;\n\n if (lastYOffset) {\n if (distance > 0 && lastYOffset > currentYOffset || distance < 0 && lastYOffset < currentYOffset) {\n return options.callback(target);\n }\n }\n\n lastYOffset = currentYOffset;\n\n var val = _this2.easeFunctions[options.easing](timeElapsed, from, distance, options.duration);\n\n options.container.scroll(0, val);\n\n if (timeElapsed < options.duration) {\n window.requestAnimationFrame(loop);\n } else {\n options.container.scroll(0, distance + from);\n options.callback(target);\n }\n };\n\n window.requestAnimationFrame(loop);\n };\n /**\n * Adds custom ease function\n * @param {string} name Ease function name\n * @param {function} fn Ease function\n */\n\n\n MoveTo.prototype.addEaseFunction = function (name, fn) {\n this.easeFunctions[name] = fn;\n };\n /**\n * Returns options which created from trigger dom element\n * @param {HTMLElement} dom Trigger dom element\n * @param {object} options The instance's options\n * @return {object} The options which created from trigger dom element\n */\n\n\n function _getOptionsFromTriggerDom(dom, options) {\n var domOptions = {};\n Object.keys(options).forEach(function (key) {\n var value = dom.getAttribute(\"data-mt-\".concat(kebabCase(key)));\n\n if (value) {\n domOptions[key] = isNaN(value) ? value : parseInt(value, 10);\n }\n });\n return domOptions;\n }\n\n return MoveTo;\n}();\n\nif (typeof module !== 'undefined') {\n module.exports = MoveTo;\n} else {\n window.MoveTo = MoveTo;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function webpackUniversalModuleDefinition(root, factory) {\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define([], factory);else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') exports[\"chrono\"] = factory();else root[\"chrono\"] = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n enumerable: true,\n get: getter\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // define __esModule on exports\n\n /******/\n\n\n __webpack_require__.r = function (exports) {\n /******/\n if (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n /******/\n Object.defineProperty(exports, Symbol.toStringTag, {\n value: 'Module'\n });\n /******/\n }\n /******/\n\n\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n /******/\n };\n /******/\n\n /******/\n // create a fake namespace object\n\n /******/\n // mode & 1: value is a module id, require it\n\n /******/\n // mode & 2: merge all properties of value into the ns\n\n /******/\n // mode & 4: return value when already ns object\n\n /******/\n // mode & 8|1: behave like require\n\n /******/\n\n\n __webpack_require__.t = function (value, mode) {\n /******/\n if (mode & 1) value = __webpack_require__(value);\n /******/\n\n if (mode & 8) return value;\n /******/\n\n if (mode & 4 && _typeof(value) === 'object' && value && value.__esModule) return value;\n /******/\n\n var ns = Object.create(null);\n /******/\n\n __webpack_require__.r(ns);\n /******/\n\n\n Object.defineProperty(ns, 'default', {\n enumerable: true,\n value: value\n });\n /******/\n\n if (mode & 2 && typeof value != 'string') for (var key in value) {\n __webpack_require__.d(ns, key, function (key) {\n return value[key];\n }.bind(null, key));\n }\n /******/\n\n return ns;\n /******/\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 11);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n function ParsedResult(result) {\n result = result || {};\n this.ref = result.ref;\n this.index = result.index;\n this.text = result.text;\n this.tags = result.tags || {};\n this.start = new ParsedComponents(result.start, result.ref);\n\n if (result.end) {\n this.end = new ParsedComponents(result.end, result.ref);\n }\n }\n\n ParsedResult.prototype.clone = function () {\n var result = new ParsedResult(this);\n result.tags = JSON.parse(JSON.stringify(this.tags));\n result.start = this.start.clone();\n\n if (this.end) {\n result.end = this.end.clone();\n }\n\n return result;\n };\n\n ParsedResult.prototype.date = function () {\n return this.start.date();\n };\n\n ParsedResult.prototype.hasPossibleDates = function () {\n return this.start.isPossibleDate() && (!this.end || this.end.isPossibleDate());\n };\n\n ParsedResult.prototype.isOnlyWeekday = function () {\n return this.start.isOnlyWeekdayComponent();\n };\n\n ParsedResult.prototype.isOnlyDayMonth = function () {\n return this.start.isOnlyDayMonthComponent();\n };\n\n function ParsedComponents(components, ref) {\n this.knownValues = {};\n this.impliedValues = {};\n\n if (components) {\n for (var key in components) {\n this.knownValues[key] = components[key];\n }\n }\n\n if (ref) {\n ref = dayjs(ref);\n this.imply('day', ref.date());\n this.imply('month', ref.month() + 1);\n this.imply('year', ref.year());\n }\n\n this.imply('hour', 12);\n this.imply('minute', 0);\n this.imply('second', 0);\n this.imply('millisecond', 0);\n }\n\n ParsedComponents.prototype.clone = function () {\n var component = new ParsedComponents();\n component.knownValues = JSON.parse(JSON.stringify(this.knownValues));\n component.impliedValues = JSON.parse(JSON.stringify(this.impliedValues));\n return component;\n };\n\n ParsedComponents.prototype.get = function (component, value) {\n if (component in this.knownValues) return this.knownValues[component];\n if (component in this.impliedValues) return this.impliedValues[component];\n };\n\n ParsedComponents.prototype.assign = function (component, value) {\n this.knownValues[component] = value;\n delete this.impliedValues[component];\n };\n\n ParsedComponents.prototype.imply = function (component, value) {\n if (component in this.knownValues) return;\n this.impliedValues[component] = value;\n };\n\n ParsedComponents.prototype.isCertain = function (component) {\n return component in this.knownValues;\n };\n\n ParsedComponents.prototype.isOnlyWeekdayComponent = function () {\n return this.isCertain('weekday') && !this.isCertain('day') && !this.isCertain('month');\n };\n\n ParsedComponents.prototype.isOnlyDayMonthComponent = function () {\n return this.isCertain('day') && this.isCertain('month') && !this.isCertain('year');\n };\n\n ParsedComponents.prototype.isPossibleDate = function () {\n var dateMoment = this.dayjs();\n\n if (this.isCertain('timezoneOffset')) {\n var adjustTimezoneOffset = this.get('timezoneOffset') - dateMoment.utcOffset();\n dateMoment = dateMoment.add(adjustTimezoneOffset, 'minutes');\n }\n\n if (dateMoment.get('year') != this.get('year')) return false;\n if (dateMoment.get('month') != this.get('month') - 1) return false;\n if (dateMoment.get('date') != this.get('day')) return false;\n if (dateMoment.get('hour') != this.get('hour')) return false;\n if (dateMoment.get('minute') != this.get('minute')) return false;\n return true;\n };\n\n ParsedComponents.prototype.date = function () {\n var result = this.dayjs();\n return result.toDate();\n };\n\n ParsedComponents.prototype.dayjs = function () {\n var result = dayjs();\n result = result.year(this.get('year'));\n result = result.month(this.get('month') - 1);\n result = result.date(this.get('day'));\n result = result.hour(this.get('hour'));\n result = result.minute(this.get('minute'));\n result = result.second(this.get('second'));\n result = result.millisecond(this.get('millisecond')); // Javascript Date Object return minus timezone offset\n\n var currentTimezoneOffset = result.utcOffset();\n var targetTimezoneOffset = this.get('timezoneOffset') !== undefined ? this.get('timezoneOffset') : currentTimezoneOffset;\n var adjustTimezoneOffset = targetTimezoneOffset - currentTimezoneOffset;\n result = result.add(-adjustTimezoneOffset, 'minute');\n return result;\n };\n\n ParsedComponents.prototype.moment = function () {\n // Keep for compatibility\n return this.dayjs();\n };\n\n exports.ParsedComponents = ParsedComponents;\n exports.ParsedResult = ParsedResult;\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n exports.Parser = function (config) {\n config = config || {};\n var strictMode = config.strict;\n\n this.isStrictMode = function () {\n return strictMode == true;\n };\n\n this.pattern = function () {\n return /./i;\n };\n\n this.extract = function (text, ref, match, opt) {\n return null;\n };\n\n this.execute = function (text, ref, opt) {\n var results = [];\n var regex = this.pattern();\n var remainingText = text;\n var match = regex.exec(remainingText);\n\n while (match) {\n // Calculate match index on the full text;\n match.index += text.length - remainingText.length;\n var result = this.extract(text, ref, match, opt);\n\n if (result) {\n // If success, start from the end of the result\n remainingText = text.substring(result.index + result.text.length);\n\n if (!this.isStrictMode() || result.hasPossibleDates()) {\n results.push(result);\n }\n } else {\n // If fail, move on by 1\n remainingText = text.substring(match.index + 1);\n }\n\n match = regex.exec(remainingText);\n }\n\n if (this.refiners) {\n this.refiners.forEach(function () {\n results = refiner.refine(results, text, options);\n });\n }\n\n return results;\n };\n };\n\n exports.findYearClosestToRef = function (ref, day, month) {\n //Find the most appropriated year\n var refMoment = dayjs(ref);\n var dateMoment = refMoment;\n dateMoment = dateMoment.month(month - 1);\n dateMoment = dateMoment.date(day);\n dateMoment = dateMoment.year(refMoment.year());\n var nextYear = dateMoment.add(1, 'y');\n var lastYear = dateMoment.add(-1, 'y');\n\n if (Math.abs(nextYear.diff(refMoment)) < Math.abs(dateMoment.diff(refMoment))) {\n dateMoment = nextYear;\n } else if (Math.abs(lastYear.diff(refMoment)) < Math.abs(dateMoment.diff(refMoment))) {\n dateMoment = lastYear;\n }\n\n return dateMoment.year();\n };\n\n exports.ENISOFormatParser = __webpack_require__(13).Parser;\n exports.ENDeadlineFormatParser = __webpack_require__(14).Parser;\n exports.ENRelativeDateFormatParser = __webpack_require__(15).Parser;\n exports.ENMonthNameLittleEndianParser = __webpack_require__(16).Parser;\n exports.ENMonthNameMiddleEndianParser = __webpack_require__(17).Parser;\n exports.ENMonthNameParser = __webpack_require__(18).Parser;\n exports.ENSlashDateFormatParser = __webpack_require__(19).Parser;\n exports.ENSlashDateFormatStartWithYearParser = __webpack_require__(20).Parser;\n exports.ENSlashMonthFormatParser = __webpack_require__(21).Parser;\n exports.ENTimeAgoFormatParser = __webpack_require__(22).Parser;\n exports.ENTimeExpressionParser = __webpack_require__(23).Parser;\n exports.ENTimeLaterFormatParser = __webpack_require__(24).Parser;\n exports.ENWeekdayParser = __webpack_require__(5).Parser;\n exports.ENCasualDateParser = __webpack_require__(25).Parser;\n exports.ENCasualTimeParser = __webpack_require__(26).Parser;\n exports.JPStandardParser = __webpack_require__(27).Parser;\n exports.JPCasualDateParser = __webpack_require__(29).Parser;\n exports.PTCasualDateParser = __webpack_require__(30).Parser;\n exports.PTDeadlineFormatParser = __webpack_require__(31).Parser;\n exports.PTMonthNameLittleEndianParser = __webpack_require__(32).Parser;\n exports.PTSlashDateFormatParser = __webpack_require__(34).Parser;\n exports.PTTimeAgoFormatParser = __webpack_require__(35).Parser;\n exports.PTTimeExpressionParser = __webpack_require__(36).Parser;\n exports.PTWeekdayParser = __webpack_require__(37).Parser;\n exports.ESCasualDateParser = __webpack_require__(38).Parser;\n exports.ESDeadlineFormatParser = __webpack_require__(39).Parser;\n exports.ESTimeAgoFormatParser = __webpack_require__(40).Parser;\n exports.ESTimeExpressionParser = __webpack_require__(41).Parser;\n exports.ESWeekdayParser = __webpack_require__(42).Parser;\n exports.ESMonthNameLittleEndianParser = __webpack_require__(43).Parser;\n exports.ESSlashDateFormatParser = __webpack_require__(45).Parser;\n exports.FRCasualDateParser = __webpack_require__(46).Parser;\n exports.FRDeadlineFormatParser = __webpack_require__(47).Parser;\n exports.FRMonthNameLittleEndianParser = __webpack_require__(48).Parser;\n exports.FRSlashDateFormatParser = __webpack_require__(49).Parser;\n exports.FRTimeAgoFormatParser = __webpack_require__(50).Parser;\n exports.FRTimeExpressionParser = __webpack_require__(51).Parser;\n exports.FRWeekdayParser = __webpack_require__(52).Parser;\n exports.FRRelativeDateFormatParser = __webpack_require__(53).Parser;\n exports.ZHHantDateParser = __webpack_require__(55).Parser;\n exports.ZHHantWeekdayParser = __webpack_require__(56).Parser;\n exports.ZHHantTimeExpressionParser = __webpack_require__(57).Parser;\n exports.ZHHantCasualDateParser = __webpack_require__(58).Parser;\n exports.ZHHantDeadlineFormatParser = __webpack_require__(59).Parser;\n exports.DEDeadlineFormatParser = __webpack_require__(60).Parser;\n exports.DEMonthNameLittleEndianParser = __webpack_require__(61).Parser;\n exports.DEMonthNameParser = __webpack_require__(62).Parser;\n exports.DESlashDateFormatParser = __webpack_require__(63).Parser;\n exports.DETimeAgoFormatParser = __webpack_require__(64).Parser;\n exports.DETimeExpressionParser = __webpack_require__(65).Parser;\n exports.DEWeekdayParser = __webpack_require__(66).Parser;\n exports.DECasualDateParser = __webpack_require__(67).Parser;\n /***/\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n !function (t, n) {\n true ? module.exports = n() : undefined;\n }(this, function () {\n \"use strict\";\n\n var t = \"millisecond\",\n n = \"second\",\n e = \"minute\",\n r = \"hour\",\n i = \"day\",\n s = \"week\",\n u = \"month\",\n o = \"quarter\",\n a = \"year\",\n h = /^(\\d{4})-?(\\d{1,2})-?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d{1,3})?$/,\n f = /\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,\n c = function c(t, n, e) {\n var r = String(t);\n return !r || r.length >= n ? t : \"\" + Array(n + 1 - r.length).join(e) + t;\n },\n d = {\n s: c,\n z: function z(t) {\n var n = -t.utcOffset(),\n e = Math.abs(n),\n r = Math.floor(e / 60),\n i = e % 60;\n return (n <= 0 ? \"+\" : \"-\") + c(r, 2, \"0\") + \":\" + c(i, 2, \"0\");\n },\n m: function m(t, n) {\n var e = 12 * (n.year() - t.year()) + (n.month() - t.month()),\n r = t.clone().add(e, u),\n i = n - r < 0,\n s = t.clone().add(e + (i ? -1 : 1), u);\n return Number(-(e + (n - r) / (i ? r - s : s - r)) || 0);\n },\n a: function a(t) {\n return t < 0 ? Math.ceil(t) || 0 : Math.floor(t);\n },\n p: function p(h) {\n return {\n M: u,\n y: a,\n w: s,\n d: i,\n D: \"date\",\n h: r,\n m: e,\n s: n,\n ms: t,\n Q: o\n }[h] || String(h || \"\").toLowerCase().replace(/s$/, \"\");\n },\n u: function u(t) {\n return void 0 === t;\n }\n },\n $ = {\n name: \"en\",\n weekdays: \"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),\n months: \"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")\n },\n l = \"en\",\n m = {};\n\n m[l] = $;\n\n var y = function y(t) {\n return t instanceof v;\n },\n M = function M(t, n, e) {\n var r;\n if (!t) return l;\n if (\"string\" == typeof t) m[t] && (r = t), n && (m[t] = n, r = t);else {\n var i = t.name;\n m[i] = t, r = i;\n }\n return !e && r && (l = r), r || !e && l;\n },\n g = function g(t, n, e) {\n if (y(t)) return t.clone();\n var r = n ? \"string\" == typeof n ? {\n format: n,\n pl: e\n } : n : {};\n return r.date = t, new v(r);\n },\n D = d;\n\n D.l = M, D.i = y, D.w = function (t, n) {\n return g(t, {\n locale: n.$L,\n utc: n.$u,\n $offset: n.$offset\n });\n };\n\n var v = function () {\n function c(t) {\n this.$L = this.$L || M(t.locale, null, !0), this.parse(t);\n }\n\n var d = c.prototype;\n return d.parse = function (t) {\n this.$d = function (t) {\n var n = t.date,\n e = t.utc;\n if (null === n) return new Date(NaN);\n if (D.u(n)) return new Date();\n if (n instanceof Date) return new Date(n);\n\n if (\"string\" == typeof n && !/Z$/i.test(n)) {\n var r = n.match(h);\n if (r) return e ? new Date(Date.UTC(r[1], r[2] - 1, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, r[7] || 0)) : new Date(r[1], r[2] - 1, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, r[7] || 0);\n }\n\n return new Date(n);\n }(t), this.init();\n }, d.init = function () {\n var t = this.$d;\n this.$y = t.getFullYear(), this.$M = t.getMonth(), this.$D = t.getDate(), this.$W = t.getDay(), this.$H = t.getHours(), this.$m = t.getMinutes(), this.$s = t.getSeconds(), this.$ms = t.getMilliseconds();\n }, d.$utils = function () {\n return D;\n }, d.isValid = function () {\n return !(\"Invalid Date\" === this.$d.toString());\n }, d.isSame = function (t, n) {\n var e = g(t);\n return this.startOf(n) <= e && e <= this.endOf(n);\n }, d.isAfter = function (t, n) {\n return g(t) < this.startOf(n);\n }, d.isBefore = function (t, n) {\n return this.endOf(n) < g(t);\n }, d.$g = function (t, n, e) {\n return D.u(t) ? this[n] : this.set(e, t);\n }, d.year = function (t) {\n return this.$g(t, \"$y\", a);\n }, d.month = function (t) {\n return this.$g(t, \"$M\", u);\n }, d.day = function (t) {\n return this.$g(t, \"$W\", i);\n }, d.date = function (t) {\n return this.$g(t, \"$D\", \"date\");\n }, d.hour = function (t) {\n return this.$g(t, \"$H\", r);\n }, d.minute = function (t) {\n return this.$g(t, \"$m\", e);\n }, d.second = function (t) {\n return this.$g(t, \"$s\", n);\n }, d.millisecond = function (n) {\n return this.$g(n, \"$ms\", t);\n }, d.unix = function () {\n return Math.floor(this.valueOf() / 1e3);\n }, d.valueOf = function () {\n return this.$d.getTime();\n }, d.startOf = function (t, o) {\n var h = this,\n f = !!D.u(o) || o,\n c = D.p(t),\n d = function d(t, n) {\n var e = D.w(h.$u ? Date.UTC(h.$y, n, t) : new Date(h.$y, n, t), h);\n return f ? e : e.endOf(i);\n },\n $ = function $(t, n) {\n return D.w(h.toDate()[t].apply(h.toDate(), (f ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(n)), h);\n },\n l = this.$W,\n m = this.$M,\n y = this.$D,\n M = \"set\" + (this.$u ? \"UTC\" : \"\");\n\n switch (c) {\n case a:\n return f ? d(1, 0) : d(31, 11);\n\n case u:\n return f ? d(1, m) : d(0, m + 1);\n\n case s:\n var g = this.$locale().weekStart || 0,\n v = (l < g ? l + 7 : l) - g;\n return d(f ? y - v : y + (6 - v), m);\n\n case i:\n case \"date\":\n return $(M + \"Hours\", 0);\n\n case r:\n return $(M + \"Minutes\", 1);\n\n case e:\n return $(M + \"Seconds\", 2);\n\n case n:\n return $(M + \"Milliseconds\", 3);\n\n default:\n return this.clone();\n }\n }, d.endOf = function (t) {\n return this.startOf(t, !1);\n }, d.$set = function (s, o) {\n var h,\n f = D.p(s),\n c = \"set\" + (this.$u ? \"UTC\" : \"\"),\n d = (h = {}, h[i] = c + \"Date\", h.date = c + \"Date\", h[u] = c + \"Month\", h[a] = c + \"FullYear\", h[r] = c + \"Hours\", h[e] = c + \"Minutes\", h[n] = c + \"Seconds\", h[t] = c + \"Milliseconds\", h)[f],\n $ = f === i ? this.$D + (o - this.$W) : o;\n\n if (f === u || f === a) {\n var l = this.clone().set(\"date\", 1);\n l.$d[d]($), l.init(), this.$d = l.set(\"date\", Math.min(this.$D, l.daysInMonth())).toDate();\n } else d && this.$d[d]($);\n\n return this.init(), this;\n }, d.set = function (t, n) {\n return this.clone().$set(t, n);\n }, d.get = function (t) {\n return this[D.p(t)]();\n }, d.add = function (t, o) {\n var h,\n f = this;\n t = Number(t);\n\n var c = D.p(o),\n d = function d(n) {\n var e = g(f);\n return D.w(e.date(e.date() + Math.round(n * t)), f);\n };\n\n if (c === u) return this.set(u, this.$M + t);\n if (c === a) return this.set(a, this.$y + t);\n if (c === i) return d(1);\n if (c === s) return d(7);\n var $ = (h = {}, h[e] = 6e4, h[r] = 36e5, h[n] = 1e3, h)[c] || 1,\n l = this.$d.getTime() + t * $;\n return D.w(l, this);\n }, d.subtract = function (t, n) {\n return this.add(-1 * t, n);\n }, d.format = function (t) {\n var n = this;\n if (!this.isValid()) return \"Invalid Date\";\n\n var e = t || \"YYYY-MM-DDTHH:mm:ssZ\",\n r = D.z(this),\n i = this.$locale(),\n s = this.$H,\n u = this.$m,\n o = this.$M,\n a = i.weekdays,\n h = i.months,\n c = function c(t, r, i, s) {\n return t && (t[r] || t(n, e)) || i[r].substr(0, s);\n },\n d = function d(t) {\n return D.s(s % 12 || 12, t, \"0\");\n },\n $ = i.meridiem || function (t, n, e) {\n var r = t < 12 ? \"AM\" : \"PM\";\n return e ? r.toLowerCase() : r;\n },\n l = {\n YY: String(this.$y).slice(-2),\n YYYY: this.$y,\n M: o + 1,\n MM: D.s(o + 1, 2, \"0\"),\n MMM: c(i.monthsShort, o, h, 3),\n MMMM: h[o] || h(this, e),\n D: this.$D,\n DD: D.s(this.$D, 2, \"0\"),\n d: String(this.$W),\n dd: c(i.weekdaysMin, this.$W, a, 2),\n ddd: c(i.weekdaysShort, this.$W, a, 3),\n dddd: a[this.$W],\n H: String(s),\n HH: D.s(s, 2, \"0\"),\n h: d(1),\n hh: d(2),\n a: $(s, u, !0),\n A: $(s, u, !1),\n m: String(u),\n mm: D.s(u, 2, \"0\"),\n s: String(this.$s),\n ss: D.s(this.$s, 2, \"0\"),\n SSS: D.s(this.$ms, 3, \"0\"),\n Z: r\n };\n\n return e.replace(f, function (t, n) {\n return n || l[t] || r.replace(\":\", \"\");\n });\n }, d.utcOffset = function () {\n return 15 * -Math.round(this.$d.getTimezoneOffset() / 15);\n }, d.diff = function (t, h, f) {\n var c,\n d = D.p(h),\n $ = g(t),\n l = 6e4 * ($.utcOffset() - this.utcOffset()),\n m = this - $,\n y = D.m(this, $);\n return y = (c = {}, c[a] = y / 12, c[u] = y, c[o] = y / 3, c[s] = (m - l) / 6048e5, c[i] = (m - l) / 864e5, c[r] = m / 36e5, c[e] = m / 6e4, c[n] = m / 1e3, c)[d] || m, f ? y : D.a(y);\n }, d.daysInMonth = function () {\n return this.endOf(u).$D;\n }, d.$locale = function () {\n return m[this.$L];\n }, d.locale = function (t, n) {\n if (!t) return this.$L;\n var e = this.clone(),\n r = M(t, n, !0);\n return r && (e.$L = r), e;\n }, d.clone = function () {\n return D.w(this.$d, this);\n }, d.toDate = function () {\n return new Date(this.valueOf());\n }, d.toJSON = function () {\n return this.isValid() ? this.toISOString() : null;\n }, d.toISOString = function () {\n return this.$d.toISOString();\n }, d.toString = function () {\n return this.$d.toUTCString();\n }, c;\n }();\n\n return g.prototype = v.prototype, g.extend = function (t, n) {\n return t(n, v, g), g;\n }, g.locale = M, g.isDayjs = y, g.unix = function (t) {\n return g(1e3 * t);\n }, g.en = m[l], g.Ls = m, g;\n });\n /***/\n },\n /* 3 */\n\n /***/\n function (module, exports, __webpack_require__) {\n exports.Refiner = function Refiner() {\n this.refine = function (text, results, opt) {\n return results;\n };\n };\n\n exports.Filter = function Filter() {\n exports.Refiner.call(this);\n\n this.isValid = function (text, result, opt) {\n return true;\n };\n\n this.refine = function (text, results, opt) {\n var filteredResult = [];\n\n for (var i = 0; i < results.length; i++) {\n var result = results[i];\n\n if (this.isValid(text, result, opt)) {\n filteredResult.push(result);\n }\n }\n\n return filteredResult;\n };\n }; // Common refiners\n\n\n exports.OverlapRemovalRefiner = __webpack_require__(68).Refiner;\n exports.ExtractTimezoneOffsetRefiner = __webpack_require__(69).Refiner;\n exports.ExtractTimezoneAbbrRefiner = __webpack_require__(70).Refiner;\n exports.ForwardDateRefiner = __webpack_require__(71).Refiner;\n exports.UnlikelyFormatFilter = __webpack_require__(72).Refiner; // en refiners\n\n exports.ENMergeDateTimeRefiner = __webpack_require__(6).Refiner;\n exports.ENMergeDateRangeRefiner = __webpack_require__(10).Refiner;\n exports.ENPrioritizeSpecificDateRefiner = __webpack_require__(73).Refiner; // ja refiners\n\n exports.JPMergeDateRangeRefiner = __webpack_require__(74).Refiner; // fr refiners\n\n exports.FRMergeDateRangeRefiner = __webpack_require__(75).Refiner;\n exports.FRMergeDateTimeRefiner = __webpack_require__(76).Refiner; // de refiners\n\n exports.DEMergeDateRangeRefiner = __webpack_require__(77).Refiner;\n exports.DEMergeDateTimeRefiner = __webpack_require__(78).Refiner;\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports) {\n exports.WEEKDAY_OFFSET = {\n 'sunday': 0,\n 'sun': 0,\n 'monday': 1,\n 'mon': 1,\n 'tuesday': 2,\n 'tue': 2,\n 'wednesday': 3,\n 'wed': 3,\n 'thursday': 4,\n 'thur': 4,\n 'thu': 4,\n 'friday': 5,\n 'fri': 5,\n 'saturday': 6,\n 'sat': 6\n };\n exports.MONTH_OFFSET = {\n 'january': 1,\n 'jan': 1,\n 'jan.': 1,\n 'february': 2,\n 'feb': 2,\n 'feb.': 2,\n 'march': 3,\n 'mar': 3,\n 'mar.': 3,\n 'april': 4,\n 'apr': 4,\n 'apr.': 4,\n 'may': 5,\n 'june': 6,\n 'jun': 6,\n 'jun.': 6,\n 'july': 7,\n 'jul': 7,\n 'jul.': 7,\n 'august': 8,\n 'aug': 8,\n 'aug.': 8,\n 'september': 9,\n 'sep': 9,\n 'sep.': 9,\n 'sept': 9,\n 'sept.': 9,\n 'october': 10,\n 'oct': 10,\n 'oct.': 10,\n 'november': 11,\n 'nov': 11,\n 'nov.': 11,\n 'december': 12,\n 'dec': 12,\n 'dec.': 12\n };\n exports.MONTH_PATTERN = '(?:' + Object.keys(exports.MONTH_OFFSET).join('|').replace(/\\./g, '\\\\.') + ')';\n exports.INTEGER_WORDS = {\n 'one': 1,\n 'two': 2,\n 'three': 3,\n 'four': 4,\n 'five': 5,\n 'six': 6,\n 'seven': 7,\n 'eight': 8,\n 'nine': 9,\n 'ten': 10,\n 'eleven': 11,\n 'twelve': 12\n };\n exports.INTEGER_WORDS_PATTERN = '(?:' + Object.keys(exports.INTEGER_WORDS).join('|') + ')';\n exports.ORDINAL_WORDS = {\n 'first': 1,\n 'second': 2,\n 'third': 3,\n 'fourth': 4,\n 'fifth': 5,\n 'sixth': 6,\n 'seventh': 7,\n 'eighth': 8,\n 'ninth': 9,\n 'tenth': 10,\n 'eleventh': 11,\n 'twelfth': 12,\n 'thirteenth': 13,\n 'fourteenth': 14,\n 'fifteenth': 15,\n 'sixteenth': 16,\n 'seventeenth': 17,\n 'eighteenth': 18,\n 'nineteenth': 19,\n 'twentieth': 20,\n 'twenty first': 21,\n 'twenty second': 22,\n 'twenty third': 23,\n 'twenty fourth': 24,\n 'twenty fifth': 25,\n 'twenty sixth': 26,\n 'twenty seventh': 27,\n 'twenty eighth': 28,\n 'twenty ninth': 29,\n 'thirtieth': 30,\n 'thirty first': 31\n };\n exports.ORDINAL_WORDS_PATTERN = '(?:' + Object.keys(exports.ORDINAL_WORDS).join('|').replace(/ /g, '[ -]') + ')';\n var TIME_UNIT = '(' + exports.INTEGER_WORDS_PATTERN + '|[0-9]+|[0-9]+\\.[0-9]+|an?(?:\\\\s*few)?|half(?:\\\\s*an?)?)\\\\s*' + '(sec(?:onds?)?|min(?:ute)?s?|h(?:r|rs|our|ours)?|weeks?|days?|months?|years?)\\\\s*';\n var TIME_UNIT_STRICT = '(?:[0-9]+|an?)\\\\s*' + '(?:seconds?|minutes?|hours?|days?)\\\\s*';\n var PATTERN_TIME_UNIT = new RegExp(TIME_UNIT, 'i');\n exports.TIME_UNIT_PATTERN = '(?:' + TIME_UNIT + ')+';\n exports.TIME_UNIT_STRICT_PATTERN = '(?:' + TIME_UNIT_STRICT + ')+';\n\n exports.extractDateTimeUnitFragments = function (timeunitText) {\n var fragments = {};\n var remainingText = timeunitText;\n var match = PATTERN_TIME_UNIT.exec(remainingText);\n\n while (match) {\n collectDateTimeFragment(match, fragments);\n remainingText = remainingText.substring(match[0].length);\n match = PATTERN_TIME_UNIT.exec(remainingText);\n }\n\n return fragments;\n };\n\n function collectDateTimeFragment(match, fragments) {\n var num = match[1].toLowerCase();\n\n if (exports.INTEGER_WORDS[num] !== undefined) {\n num = exports.INTEGER_WORDS[num];\n } else if (num === 'a' || num === 'an') {\n num = 1;\n } else if (num.match(/few/)) {\n num = 3;\n } else if (num.match(/half/)) {\n num = 0.5;\n } else {\n num = parseFloat(num);\n }\n\n if (match[2].match(/^h/i)) {\n fragments['hour'] = num;\n } else if (match[2].match(/min/i)) {\n fragments['minute'] = num;\n } else if (match[2].match(/sec/i)) {\n fragments['second'] = num;\n } else if (match[2].match(/week/i)) {\n fragments['week'] = num;\n } else if (match[2].match(/day/i)) {\n fragments['d'] = num;\n } else if (match[2].match(/month/i)) {\n fragments['month'] = num;\n } else if (match[2].match(/year/i)) {\n fragments['year'] = num;\n }\n\n return fragments;\n }\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var DAYS_OFFSET = {\n 'sunday': 0,\n 'sun': 0,\n 'monday': 1,\n 'mon': 1,\n 'tuesday': 2,\n 'tues': 2,\n 'tue': 2,\n 'wednesday': 3,\n 'wed': 3,\n 'thursday': 4,\n 'thurs': 4,\n 'thur': 4,\n 'thu': 4,\n 'friday': 5,\n 'fri': 5,\n 'saturday': 6,\n 'sat': 6\n };\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(?:\\\\,|\\\\(|\\\\()\\\\s*)?' + '(?:on\\\\s*?)?' + '(?:(this|last|past|next)\\\\s*)?' + '(' + Object.keys(DAYS_OFFSET).join('|') + ')' + '(?:\\\\s*(?:\\\\,|\\\\)|\\\\)))?' + '(?:\\\\s*(this|last|past|next)\\\\s*week)?' + '(?=\\\\W|$)', 'i');\n var PREFIX_GROUP = 2;\n var WEEKDAY_GROUP = 3;\n var POSTFIX_GROUP = 4;\n\n exports.updateParsedComponent = function updateParsedComponent(result, ref, offset, modifier) {\n var startMoment = dayjs(ref);\n var startMomentFixed = false;\n var refOffset = startMoment.day();\n\n if (modifier == 'last' || modifier == 'past') {\n startMoment = startMoment.day(offset - 7);\n startMomentFixed = true;\n } else if (modifier == 'next') {\n startMoment = startMoment.day(offset + 7);\n startMomentFixed = true;\n } else if (modifier == 'this') {\n startMoment = startMoment.day(offset);\n } else {\n if (Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) {\n startMoment = startMoment.day(offset - 7);\n } else if (Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) {\n startMoment = startMoment.day(offset + 7);\n } else {\n startMoment = startMoment.day(offset);\n }\n }\n\n result.start.assign('weekday', offset);\n\n if (startMomentFixed) {\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n } else {\n result.start.imply('day', startMoment.date());\n result.start.imply('month', startMoment.month() + 1);\n result.start.imply('year', startMoment.year());\n }\n\n return result;\n };\n\n exports.Parser = function ENWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();\n var offset = DAYS_OFFSET[dayOfWeek];\n\n if (offset === undefined) {\n return null;\n }\n\n var prefix = match[PREFIX_GROUP];\n var postfix = match[POSTFIX_GROUP];\n var norm = prefix || postfix;\n norm = norm || '';\n norm = norm.toLowerCase();\n exports.updateParsedComponent(result, ref, offset, norm);\n result.tags['ENWeekdayParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var Refiner = __webpack_require__(3).Refiner;\n\n var PATTERN = new RegExp(\"^\\\\s*(T|at|after|before|on|of|,|-)?\\\\s*$\");\n\n var isDateOnly = exports.isDateOnly = function (result) {\n return !result.start.isCertain('hour');\n };\n\n var isTimeOnly = exports.isTimeOnly = function (result) {\n return !result.start.isCertain('month') && !result.start.isCertain('weekday');\n };\n\n var isAbleToMerge = exports.isAbleToMerge = function (text, prevResult, curResult) {\n var textBetween = text.substring(prevResult.index + prevResult.text.length, curResult.index);\n return textBetween.match(PATTERN);\n };\n\n var mergeDateTimeComponent = exports.mergeDateTimeComponent = function (dateComponent, timeComponent) {\n var dateTimeComponent = dateComponent.clone();\n\n if (timeComponent.isCertain('hour')) {\n dateTimeComponent.assign('hour', timeComponent.get('hour'));\n dateTimeComponent.assign('minute', timeComponent.get('minute'));\n\n if (timeComponent.isCertain('second')) {\n dateTimeComponent.assign('second', timeComponent.get('second'));\n\n if (timeComponent.isCertain('millisecond')) {\n dateTimeComponent.assign('millisecond', timeComponent.get('millisecond'));\n } else {\n dateTimeComponent.imply('millisecond', timeComponent.get('millisecond'));\n }\n } else {\n dateTimeComponent.imply('second', timeComponent.get('second'));\n dateTimeComponent.imply('millisecond', timeComponent.get('millisecond'));\n }\n } else {\n dateTimeComponent.imply('hour', timeComponent.get('hour'));\n dateTimeComponent.imply('minute', timeComponent.get('minute'));\n dateTimeComponent.imply('second', timeComponent.get('second'));\n dateTimeComponent.imply('millisecond', timeComponent.get('millisecond'));\n }\n\n if (timeComponent.isCertain('meridiem')) {\n dateTimeComponent.assign('meridiem', timeComponent.get('meridiem'));\n } else if (timeComponent.get('meridiem') !== undefined && dateTimeComponent.get('meridiem') === undefined) {\n dateTimeComponent.imply('meridiem', timeComponent.get('meridiem'));\n }\n\n if (dateTimeComponent.get('meridiem') == 1 && dateTimeComponent.get('hour') < 12) {\n if (timeComponent.isCertain('hour')) {\n dateTimeComponent.assign('hour', dateTimeComponent.get('hour') + 12);\n } else {\n dateTimeComponent.imply('hour', dateTimeComponent.get('hour') + 12);\n }\n }\n\n return dateTimeComponent;\n };\n\n function mergeResult(text, dateResult, timeResult) {\n var beginDate = dateResult.start;\n var beginTime = timeResult.start;\n var beginDateTime = mergeDateTimeComponent(beginDate, beginTime);\n\n if (dateResult.end != null || timeResult.end != null) {\n var endDate = dateResult.end == null ? dateResult.start : dateResult.end;\n var endTime = timeResult.end == null ? timeResult.start : timeResult.end;\n var endDateTime = mergeDateTimeComponent(endDate, endTime);\n\n if (dateResult.end == null && endDateTime.date().getTime() < beginDateTime.date().getTime()) {\n // Ex. 9pm - 1am\n if (endDateTime.isCertain('day')) {\n endDateTime.assign('day', endDateTime.get('day') + 1);\n } else {\n endDateTime.imply('day', endDateTime.get('day') + 1);\n }\n }\n\n dateResult.end = endDateTime;\n }\n\n dateResult.start = beginDateTime;\n var startIndex = Math.min(dateResult.index, timeResult.index);\n var endIndex = Math.max(dateResult.index + dateResult.text.length, timeResult.index + timeResult.text.length);\n dateResult.index = startIndex;\n dateResult.text = text.substring(startIndex, endIndex);\n\n for (var tag in timeResult.tags) {\n dateResult.tags[tag] = true;\n }\n\n dateResult.tags['ENMergeDateAndTimeRefiner'] = true;\n return dateResult;\n }\n\n exports.Refiner = function ENMergeDateTimeRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (isDateOnly(prevResult) && isTimeOnly(currResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, prevResult, currResult);\n currResult = results[i + 1];\n i += 1;\n } else if (isDateOnly(currResult) && isTimeOnly(prevResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, currResult, prevResult);\n currResult = results[i + 1];\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n };\n /***/\n\n },\n /* 7 */\n\n /***/\n function (module, exports) {\n var NUMBER = {\n '零': 0,\n '一': 1,\n '二': 2,\n '兩': 2,\n '三': 3,\n '四': 4,\n '五': 5,\n '六': 6,\n '七': 7,\n '八': 8,\n '九': 9,\n '十': 10,\n '廿': 20,\n '卅': 30\n };\n var WEEKDAY_OFFSET = {\n '天': 0,\n '日': 0,\n '一': 1,\n '二': 2,\n '三': 3,\n '四': 4,\n '五': 5,\n '六': 6\n };\n exports.NUMBER = NUMBER;\n exports.WEEKDAY_OFFSET = WEEKDAY_OFFSET;\n\n exports.zhStringToNumber = function (text) {\n var number = 0;\n\n for (var i = 0; i < text.length; i++) {\n var _char = text[i];\n\n if (_char === '十') {\n number = number === 0 ? NUMBER[_char] : number * NUMBER[_char];\n } else {\n number += NUMBER[_char];\n }\n }\n\n return number;\n };\n\n exports.zhStringToYear = function (text) {\n var string = '';\n\n for (var i = 0; i < text.length; i++) {\n var _char2 = text[i];\n string = string + NUMBER[_char2];\n }\n\n return parseInt(string);\n };\n /***/\n\n },\n /* 8 */\n\n /***/\n function (module, exports) {\n exports.WEEKDAY_OFFSET = {\n 'sonntag': 0,\n 'so': 0,\n 'montag': 1,\n 'mo': 1,\n 'dienstag': 2,\n 'di': 2,\n 'mittwoch': 3,\n 'mi': 3,\n 'donnerstag': 4,\n 'do': 4,\n 'freitag': 5,\n 'fr': 5,\n 'samstag': 6,\n 'sa': 6\n };\n exports.MONTH_OFFSET = {\n 'januar': 1,\n 'jan': 1,\n 'jan.': 1,\n 'februar': 2,\n 'feb': 2,\n 'feb.': 2,\n 'märz': 3,\n 'maerz': 3,\n 'mär': 3,\n 'mär.': 3,\n 'mrz': 3,\n 'mrz.': 3,\n 'april': 4,\n 'apr': 4,\n 'apr.': 4,\n 'mai': 5,\n 'juni': 6,\n 'jun': 6,\n 'jun.': 6,\n 'juli': 7,\n 'jul': 7,\n 'jul.': 7,\n 'august': 8,\n 'aug': 8,\n 'aug.': 8,\n 'september': 9,\n 'sep': 9,\n 'sep.': 9,\n 'sept': 9,\n 'sept.': 9,\n 'oktober': 10,\n 'okt': 10,\n 'okt.': 10,\n 'november': 11,\n 'nov': 11,\n 'nov.': 11,\n 'dezember': 12,\n 'dez': 12,\n 'dez.': 12\n };\n exports.INTEGER_WORDS_PATTERN = '(?:eins|zwei|drei|vier|fünf|fuenf|sechs|sieben|acht|neun|zehn|elf|zwölf|zwoelf)';\n exports.INTEGER_WORDS = {\n 'eins': 1,\n 'zwei': 2,\n 'drei': 3,\n 'vier': 4,\n 'fünf': 5,\n 'fuenf': 5,\n 'sechs': 6,\n 'sieben': 7,\n 'acht': 8,\n 'neun': 9,\n 'zehn': 10,\n 'elf': 11,\n 'zwölf': 12,\n 'zwoelf': 12\n };\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports) {\n exports.WEEKDAY_OFFSET = {\n 'dimanche': 0,\n 'dim': 0,\n 'lundi': 1,\n 'lun': 1,\n 'mardi': 2,\n 'mar': 2,\n 'mercredi': 3,\n 'mer': 3,\n 'jeudi': 4,\n 'jeu': 4,\n 'vendredi': 5,\n 'ven': 5,\n 'samedi': 6,\n 'sam': 6\n };\n exports.MONTH_OFFSET = {\n 'janvier': 1,\n 'jan': 1,\n 'jan.': 1,\n 'février': 2,\n 'fév': 2,\n 'fév.': 2,\n 'fevrier': 2,\n 'fev': 2,\n 'fev.': 2,\n 'mars': 3,\n 'mar': 3,\n 'mar.': 3,\n 'avril': 4,\n 'avr': 4,\n 'avr.': 4,\n 'mai': 5,\n 'juin': 6,\n 'jun': 6,\n 'juillet': 7,\n 'jul': 7,\n 'jul.': 7,\n 'août': 8,\n 'aout': 8,\n 'septembre': 9,\n 'sep': 9,\n 'sep.': 9,\n 'sept': 9,\n 'sept.': 9,\n 'octobre': 10,\n 'oct': 10,\n 'oct.': 10,\n 'novembre': 11,\n 'nov': 11,\n 'nov.': 11,\n 'décembre': 12,\n 'decembre': 12,\n 'dec': 12,\n 'dec.': 12\n };\n exports.INTEGER_WORDS_PATTERN = '(?:un|deux|trois|quatre|cinq|six|sept|huit|neuf|dix|onze|douze|treize)';\n exports.INTEGER_WORDS = {\n 'un': 1,\n 'deux': 2,\n 'trois': 3,\n 'quatre': 4,\n 'cinq': 5,\n 'six': 6,\n 'sept': 7,\n 'huit': 8,\n 'neuf': 9,\n 'dix': 10,\n 'onze': 11,\n 'douze': 12,\n 'treize': 13\n };\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var Refiner = __webpack_require__(3).Refiner;\n\n exports.Refiner = function ENMergeDateRangeRefiner() {\n Refiner.call(this);\n\n this.pattern = function () {\n return /^\\s*(to|\\-)\\s*$/i;\n };\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (!prevResult.end && !currResult.end && this.isAbleToMerge(text, prevResult, currResult)) {\n prevResult = this.mergeResult(text, prevResult, currResult);\n currResult = null;\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n\n this.isAbleToMerge = function (text, result1, result2) {\n var begin = result1.index + result1.text.length;\n var end = result2.index;\n var textBetween = text.substring(begin, end);\n return textBetween.match(this.pattern());\n };\n\n this.mergeResult = function (text, fromResult, toResult) {\n if (!fromResult.isOnlyWeekday() && !toResult.isOnlyWeekday()) {\n var timeKeys = {\n 'hour': true,\n 'minute': true,\n 'second': true\n };\n\n for (var key in toResult.start.knownValues) {\n if (!fromResult.start.isCertain(key)) {\n fromResult.start.assign(key, toResult.start.get(key));\n }\n }\n\n for (var key in fromResult.start.knownValues) {\n if (!toResult.start.isCertain(key)) {\n toResult.start.assign(key, fromResult.start.get(key));\n }\n }\n }\n\n if (fromResult.start.date().getTime() > toResult.start.date().getTime()) {\n var fromMoment = fromResult.start.dayjs();\n var toMoment = toResult.start.dayjs();\n\n if (fromResult.isOnlyWeekday() && fromMoment.add(-7, 'days').isBefore(toMoment)) {\n fromMoment = fromMoment.add(-7, 'days');\n fromResult.start.imply('day', fromMoment.date());\n fromResult.start.imply('month', fromMoment.month() + 1);\n fromResult.start.imply('year', fromMoment.year());\n } else if (toResult.isOnlyWeekday() && toMoment.add(7, 'days').isAfter(fromMoment)) {\n toMoment = toMoment.add(7, 'days');\n toResult.start.imply('day', toMoment.date());\n toResult.start.imply('month', toMoment.month() + 1);\n toResult.start.imply('year', toMoment.year());\n } else {\n var tmp = toResult;\n toResult = fromResult;\n fromResult = tmp;\n }\n }\n\n fromResult.end = toResult.start;\n\n for (var tag in toResult.tags) {\n fromResult.tags[tag] = true;\n }\n\n var startIndex = Math.min(fromResult.index, toResult.index);\n var endIndex = Math.max(fromResult.index + fromResult.text.length, toResult.index + toResult.text.length);\n fromResult.index = startIndex;\n fromResult.text = text.substring(startIndex, endIndex);\n fromResult.tags[this.constructor.name] = true;\n return fromResult;\n };\n };\n /***/\n\n },\n /* 11 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var options = exports.options = __webpack_require__(12);\n\n exports.parser = __webpack_require__(1);\n exports.refiner = __webpack_require__(3);\n exports.Parser = exports.parser.Parser;\n exports.Refiner = exports.refiner.Refiner;\n exports.Filter = exports.refiner.Filter;\n exports.ParsedResult = __webpack_require__(0).ParsedResult;\n exports.ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var Chrono = function Chrono(option) {\n option = option || exports.options.casualOption();\n this.parsers = new Object(option.parsers);\n this.refiners = new Object(option.refiners);\n };\n\n Chrono.prototype.parse = function (text, refDate, opt) {\n refDate = refDate || new Date();\n opt = opt || {};\n opt.forwardDate = opt.forwardDate || opt.forwardDate;\n var allResults = [];\n this.parsers.forEach(function (parser) {\n var results = parser.execute(text, refDate, opt);\n allResults = allResults.concat(results);\n });\n allResults.sort(function (a, b) {\n return a.index - b.index;\n });\n this.refiners.forEach(function (refiner) {\n allResults = refiner.refine(text, allResults, opt);\n });\n return allResults;\n };\n\n Chrono.prototype.parseDate = function (text, refDate, opt) {\n var results = this.parse(text, refDate, opt);\n\n if (results.length > 0) {\n return results[0].start.date();\n }\n\n return null;\n };\n\n exports.Chrono = Chrono;\n exports.strict = new Chrono(options.strictOption());\n exports.casual = new Chrono(options.casualOption());\n exports.en = new Chrono(options.mergeOptions([options.en.casual, options.commonPostProcessing]));\n exports.en_GB = new Chrono(options.mergeOptions([options.en_GB.casual, options.commonPostProcessing]));\n exports.de = new Chrono(options.mergeOptions([options.de.casual, options.en, options.commonPostProcessing]));\n exports.pt = new Chrono(options.mergeOptions([options.pt.casual, options.en, options.commonPostProcessing]));\n exports.es = new Chrono(options.mergeOptions([options.es.casual, options.en, options.commonPostProcessing]));\n exports.fr = new Chrono(options.mergeOptions([options.fr.casual, options.en, options.commonPostProcessing]));\n exports.ja = new Chrono(options.mergeOptions([options.ja.casual, options.en, options.commonPostProcessing]));\n\n exports.parse = function () {\n return exports.casual.parse.apply(exports.casual, arguments);\n };\n\n exports.parseDate = function () {\n return exports.casual.parseDate.apply(exports.casual, arguments);\n };\n /***/\n\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parser = __webpack_require__(1);\n\n var refiner = __webpack_require__(3);\n\n exports.mergeOptions = function (options) {\n var addedTypes = {};\n var mergedOption = {\n parsers: [],\n refiners: []\n };\n options.forEach(function (option) {\n if (option.call) {\n option = option.call();\n }\n\n if (option.parsers) {\n option.parsers.forEach(function (p) {\n if (!addedTypes[p.constructor]) {\n mergedOption.parsers.push(p);\n addedTypes[p.constructor] = true;\n }\n });\n }\n\n if (option.refiners) {\n option.refiners.forEach(function (r) {\n if (!addedTypes[r.constructor]) {\n mergedOption.refiners.push(r);\n addedTypes[r.constructor] = true;\n }\n });\n }\n });\n return mergedOption;\n };\n\n exports.commonPostProcessing = function () {\n return {\n refiners: [// These should be after all other refiners\n new refiner.ExtractTimezoneOffsetRefiner(), new refiner.ExtractTimezoneAbbrRefiner(), new refiner.UnlikelyFormatFilter()]\n };\n }; // -------------------------------------------------------------\n\n\n exports.strictOption = function () {\n var strictConfig = {\n strict: true\n };\n return exports.mergeOptions([exports.en(strictConfig), exports.de(strictConfig), exports.pt(strictConfig), exports.es(strictConfig), exports.fr(strictConfig), exports.ja(strictConfig), exports.zh, exports.commonPostProcessing]);\n };\n\n exports.casualOption = function () {\n return exports.mergeOptions([exports.en.casual, // Some German abbriviate overlap with common English\n exports.de({\n strict: true\n }), exports.pt, exports.es, exports.fr, exports.ja, exports.zh, exports.commonPostProcessing]);\n }; // -------------------------------------------------------------\n\n\n exports.de = function (config) {\n return {\n parsers: [new parser.DEDeadlineFormatParser(config), new parser.DEMonthNameLittleEndianParser(config), new parser.DEMonthNameParser(config), new parser.DESlashDateFormatParser(config), new parser.DETimeAgoFormatParser(config), new parser.DETimeExpressionParser(config)],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner(), new refiner.DEMergeDateTimeRefiner(), new refiner.DEMergeDateRangeRefiner()]\n };\n };\n\n exports.de.casual = function () {\n var option = exports.de({\n strict: false\n });\n option.parsers.unshift(new parser.DECasualDateParser());\n option.parsers.unshift(new parser.DEWeekdayParser());\n return option;\n }; // -------------------------------------------------------------\n\n\n exports.en = function (config) {\n return {\n parsers: [new parser.ENISOFormatParser(config), new parser.ENDeadlineFormatParser(config), new parser.ENMonthNameLittleEndianParser(config), new parser.ENMonthNameMiddleEndianParser(config), new parser.ENMonthNameParser(config), new parser.ENSlashDateFormatParser(config), new parser.ENSlashDateFormatStartWithYearParser(config), new parser.ENSlashMonthFormatParser(config), new parser.ENTimeAgoFormatParser(config), new parser.ENTimeLaterFormatParser(config), new parser.ENTimeExpressionParser(config)],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner(), // English\n new refiner.ENMergeDateTimeRefiner(), new refiner.ENMergeDateRangeRefiner(), new refiner.ENPrioritizeSpecificDateRefiner()]\n };\n };\n\n exports.en.casual = function (config) {\n config = config || {};\n config.strict = false;\n var option = exports.en(config); // en\n\n option.parsers.unshift(new parser.ENCasualDateParser());\n option.parsers.unshift(new parser.ENCasualTimeParser());\n option.parsers.unshift(new parser.ENWeekdayParser());\n option.parsers.unshift(new parser.ENRelativeDateFormatParser());\n return option;\n };\n\n exports.en_GB = function (config) {\n config = config || {};\n config.littleEndian = true;\n return exports.en(config);\n };\n\n exports.en_GB.casual = function (config) {\n config = config || {};\n config.littleEndian = true;\n return exports.en.casual(config);\n }; // -------------------------------------------------------------\n\n\n exports.ja = function () {\n return {\n parsers: [new parser.JPStandardParser()],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner(), new refiner.JPMergeDateRangeRefiner()]\n };\n };\n\n exports.ja.casual = function () {\n var option = exports.ja();\n option.parsers.unshift(new parser.JPCasualDateParser());\n return option;\n }; // -------------------------------------------------------------\n\n\n exports.pt = function (config) {\n return {\n parsers: [new parser.PTTimeAgoFormatParser(config), new parser.PTDeadlineFormatParser(config), new parser.PTTimeExpressionParser(config), new parser.PTMonthNameLittleEndianParser(config), new parser.PTSlashDateFormatParser(config)],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner()]\n };\n };\n\n exports.pt.casual = function () {\n var option = exports.pt({\n strict: false\n });\n option.parsers.unshift(new parser.PTCasualDateParser());\n option.parsers.unshift(new parser.PTWeekdayParser());\n return option;\n }; // -------------------------------------------------------------\n\n\n exports.es = function (config) {\n return {\n parsers: [new parser.ESTimeAgoFormatParser(config), new parser.ESDeadlineFormatParser(config), new parser.ESTimeExpressionParser(config), new parser.ESMonthNameLittleEndianParser(config), new parser.ESSlashDateFormatParser(config)],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner()]\n };\n };\n\n exports.es.casual = function () {\n var option = exports.es({\n strict: false\n });\n option.parsers.unshift(new parser.ESCasualDateParser());\n option.parsers.unshift(new parser.ESWeekdayParser());\n return option;\n }; // -------------------------------------------------------------\n\n\n exports.fr = function (config) {\n return {\n parsers: [new parser.FRDeadlineFormatParser(config), new parser.FRMonthNameLittleEndianParser(config), new parser.FRSlashDateFormatParser(config), new parser.FRTimeAgoFormatParser(config), new parser.FRTimeExpressionParser(config)],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner(), new refiner.FRMergeDateRangeRefiner(), new refiner.FRMergeDateTimeRefiner()]\n };\n };\n\n exports.fr.casual = function () {\n var option = exports.fr({\n strict: false\n });\n option.parsers.unshift(new parser.FRCasualDateParser());\n option.parsers.unshift(new parser.FRWeekdayParser());\n option.parsers.unshift(new parser.FRRelativeDateFormatParser());\n return option;\n }; // -------------------------------------------------------------\n\n\n exports.zh = function () {\n return {\n parsers: [new parser.ZHHantDateParser(), new parser.ZHHantWeekdayParser(), new parser.ZHHantTimeExpressionParser(), new parser.ZHHantCasualDateParser(), new parser.ZHHantDeadlineFormatParser()],\n refiners: [new refiner.OverlapRemovalRefiner(), new refiner.ForwardDateRefiner()]\n };\n };\n /***/\n\n },\n /* 13 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n ISO 8601\n http://www.w3.org/TR/NOTE-datetime\n - YYYY-MM-DD\n - YYYY-MM-DDThh:mmTZD\n - YYYY-MM-DDThh:mm:ssTZD\n - YYYY-MM-DDThh:mm:ss.sTZD \n - TZD = (Z or +hh:mm or -hh:mm)\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '([0-9]{4})\\\\-([0-9]{1,2})\\\\-([0-9]{1,2})' + '(?:T' //..\n + '([0-9]{1,2}):([0-9]{1,2})' // hh:mm\n + '(?::([0-9]{1,2})(?:\\\\.(\\\\d{1,4}))?)?' // :ss.s\n + '(?:Z|([+-]\\\\d{2}):?(\\\\d{2})?)?' // TZD (Z or ±hh:mm or ±hhmm or ±hh)\n + ')?' //..\n + '(?=\\\\W|$)', 'i');\n var YEAR_NUMBER_GROUP = 2;\n var MONTH_NUMBER_GROUP = 3;\n var DATE_NUMBER_GROUP = 4;\n var HOUR_NUMBER_GROUP = 5;\n var MINUTE_NUMBER_GROUP = 6;\n var SECOND_NUMBER_GROUP = 7;\n var MILLISECOND_NUMBER_GROUP = 8;\n var TZD_HOUR_OFFSET_GROUP = 9;\n var TZD_MINUTE_OFFSET_GROUP = 10;\n\n exports.Parser = function ENISOFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n result.start.assign('year', parseInt(match[YEAR_NUMBER_GROUP]));\n result.start.assign('month', parseInt(match[MONTH_NUMBER_GROUP]));\n result.start.assign('day', parseInt(match[DATE_NUMBER_GROUP]));\n\n if (dayjs(result.start.get('month')) > 12 || dayjs(result.start.get('month')) < 1 || dayjs(result.start.get('day')) > 31 || dayjs(result.start.get('day')) < 1) {\n return null;\n }\n\n if (match[HOUR_NUMBER_GROUP] != null) {\n result.start.assign('hour', parseInt(match[HOUR_NUMBER_GROUP]));\n result.start.assign('minute', parseInt(match[MINUTE_NUMBER_GROUP]));\n\n if (match[SECOND_NUMBER_GROUP] != null) {\n result.start.assign('second', parseInt(match[SECOND_NUMBER_GROUP]));\n }\n\n if (match[MILLISECOND_NUMBER_GROUP] != null) {\n result.start.assign('millisecond', parseInt(match[MILLISECOND_NUMBER_GROUP]));\n }\n\n if (match[TZD_HOUR_OFFSET_GROUP] == null) {\n result.start.assign('timezoneOffset', 0);\n } else {\n var minuteOffset = 0;\n var hourOffset = parseInt(match[TZD_HOUR_OFFSET_GROUP]);\n if (match[TZD_MINUTE_OFFSET_GROUP] != null) minuteOffset = parseInt(match[TZD_MINUTE_OFFSET_GROUP]);\n var offset = hourOffset * 60;\n\n if (offset < 0) {\n offset -= minuteOffset;\n } else {\n offset += minuteOffset;\n }\n\n result.start.assign('timezoneOffset', offset);\n }\n }\n\n result.tags['ENISOFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 14 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(within|in)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|an?(?:\\\\s*few)?|half(?:\\\\s*an?)?)\\\\s*' + '(seconds?|min(?:ute)?s?|hours?|days?|weeks?|months?|years?)\\\\s*' + '(?=\\\\W|$)', 'i');\n var STRICT_PATTERN = new RegExp('(\\\\W|^)' + '(within|in)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|an?)\\\\s*' + '(seconds?|minutes?|hours?|days?)\\\\s*' + '(?=\\\\W|$)', 'i');\n\n exports.Parser = function ENDeadlineFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = match[3].toLowerCase();\n\n if (util.INTEGER_WORDS[num] !== undefined) {\n num = util.INTEGER_WORDS[num];\n } else if (num === 'a' || num === 'an') {\n num = 1;\n } else if (num.match(/few/i)) {\n num = 3;\n } else if (num.match(/half/i)) {\n num = 0.5;\n } else {\n num = parseInt(num);\n }\n\n var date = dayjs(ref);\n\n if (match[4].match(/day|week|month|year/i)) {\n if (match[4].match(/day/i)) {\n date = date.add(num, 'd');\n } else if (match[4].match(/week/i)) {\n date = date.add(num * 7, 'd');\n } else if (match[4].match(/month/i)) {\n date = date.add(num, 'month');\n } else if (match[4].match(/year/i)) {\n date = date.add(num, 'year');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n return result;\n }\n\n if (match[4].match(/hour/i)) {\n date = date.add(num, 'hour');\n } else if (match[4].match(/min/i)) {\n date = date.add(num, 'minute');\n } else if (match[4].match(/second/i)) {\n date = date.add(num, 'second');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.imply('hour', date.hour());\n result.start.imply('minute', date.minute());\n result.start.imply('second', date.second());\n result.tags['ENDeadlineFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 15 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(this|next|last|past)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|few|half(?:\\\\s*an?)?)?\\\\s*' + '(seconds?|min(?:ute)?s?|hours?|days?|weeks?|months?|years?)(?=\\\\s*)' + '(?=\\\\W|$)', 'i');\n var MODIFIER_WORD_GROUP = 2;\n var MULTIPLIER_WORD_GROUP = 3;\n var RELATIVE_WORD_GROUP = 4;\n\n exports.Parser = function ENRelativeDateFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var modifier = match[MODIFIER_WORD_GROUP].toLowerCase().match(/^next/) ? 1 : -1;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n result.tags['ENRelativeDateFormatParser'] = true;\n var num = match[MULTIPLIER_WORD_GROUP] === undefined ? '' : match[3].toLowerCase();\n\n if (util.INTEGER_WORDS[num] !== undefined) {\n num = util.INTEGER_WORDS[num];\n } else if (num === '') {\n num = 1;\n } else if (num.match(/few/i)) {\n num = 3;\n } else if (num.match(/half/i)) {\n num = 0.5;\n } else {\n num = parseInt(num);\n }\n\n num *= modifier;\n var date = dayjs(ref);\n\n if (match[MODIFIER_WORD_GROUP].toLowerCase().match(/^this/)) {\n if (match[MULTIPLIER_WORD_GROUP]) {\n return null;\n }\n\n if (match[RELATIVE_WORD_GROUP].match(/day|week|month|year/i)) {\n // This week\n if (match[RELATIVE_WORD_GROUP].match(/week/i)) {\n date = date.add(-date.get('d'), 'd');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n } // This month\n else if (match[RELATIVE_WORD_GROUP].match(/month/i)) {\n date = date.add(-date.date() + 1, 'd');\n result.start.imply('day', date.date());\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n } // This year\n else if (match[RELATIVE_WORD_GROUP].match(/year/i)) {\n date = date.add(-date.date() + 1, 'd');\n date = date.add(-date.month(), 'month');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.assign('year', date.year());\n }\n\n return result;\n }\n }\n\n if (match[RELATIVE_WORD_GROUP].match(/day|week|month|year/i)) {\n if (match[RELATIVE_WORD_GROUP].match(/day/i)) {\n date = date.add(num, 'd');\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n } else if (match[RELATIVE_WORD_GROUP].match(/week/i)) {\n date = date.add(num * 7, 'd'); // We don't know the exact date for next/last week so we imply\n // them\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n } else if (match[RELATIVE_WORD_GROUP].match(/month/i)) {\n date = date.add(num, 'month'); // We don't know the exact day for next/last month\n\n result.start.imply('day', date.date());\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n } else if (match[RELATIVE_WORD_GROUP].match(/year/i)) {\n date = date.add(num, 'year'); // We don't know the exact day for month on next/last year\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.assign('year', date.year());\n }\n\n return result;\n }\n\n if (match[RELATIVE_WORD_GROUP].match(/hour/i)) {\n date = date.add(num, 'hour');\n result.start.imply('minute', date.minute());\n result.start.imply('second', date.second());\n } else if (match[RELATIVE_WORD_GROUP].match(/min/i)) {\n date = date.add(num, 'minute');\n result.start.assign('minute', date.minute());\n result.start.imply('second', date.second());\n } else if (match[RELATIVE_WORD_GROUP].match(/second/i)) {\n date = date.add(num, 'second');\n result.start.assign('second', date.second());\n result.start.assign('minute', date.minute());\n }\n\n result.start.assign('hour', date.hour());\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n };\n };\n /***/\n\n },\n /* 16 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:on\\\\s*?)?' + '(?:(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\\\\s*,?\\\\s*)?' + '(([0-9]{1,2})(?:st|nd|rd|th)?|' + util.ORDINAL_WORDS_PATTERN + ')' + '(?:\\\\s*' + '(?:to|\\\\-|\\\\–|until|through|till|\\\\s)\\\\s*' + '(([0-9]{1,2})(?:st|nd|rd|th)?|' + util.ORDINAL_WORDS_PATTERN + ')' + ')?' + '(?:-|\\/|\\\\s*(?:of)?\\\\s*)' + '(' + util.MONTH_PATTERN + ')' + '(?:' + '(?:-|\\/|,?\\\\s*)' + '((?:' + '[1-9][0-9]{0,3}\\\\s*(?:BE|AD|BC)|' + '[1-2][0-9]{3}|' + '[5-9][0-9]' + ')(?![^\\\\s]\\\\d))' + ')?' + '(?=\\\\W|$)', 'i');\n var WEEKDAY_GROUP = 2;\n var DATE_GROUP = 3;\n var DATE_NUM_GROUP = 4;\n var DATE_TO_GROUP = 5;\n var DATE_TO_NUM_GROUP = 6;\n var MONTH_NAME_GROUP = 7;\n var YEAR_GROUP = 8;\n\n exports.Parser = function ENMonthNameLittleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_NUM_GROUP] ? parseInt(match[DATE_NUM_GROUP]) : util.ORDINAL_WORDS[match[DATE_GROUP].trim().replace('-', ' ').toLowerCase()];\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n\n if (/BE/i.test(year)) {\n // Buddhist Era\n year = year.replace(/BE/i, '');\n year = parseInt(year) - 543;\n } else if (/BC/i.test(year)) {\n // Before Christ\n year = year.replace(/BC/i, '');\n year = -parseInt(year);\n } else if (/AD/i.test(year)) {\n year = year.replace(/AD/i, '');\n year = parseInt(year);\n } else {\n year = parseInt(year);\n\n if (year < 100) {\n if (year > 50) {\n year = year + 1900;\n } else {\n year = year + 2000;\n }\n }\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as '12 - 13 January 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n var endDate = match[DATE_TO_NUM_GROUP] ? parseInt(match[DATE_TO_NUM_GROUP]) : util.ORDINAL_WORDS[match[DATE_TO_GROUP].trim().replace('-', ' ').toLowerCase()];\n result.end = result.start.clone();\n result.end.assign('day', endDate);\n }\n\n result.tags['ENMonthNameLittleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 17 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n The parser for parsing US's date format that begin with month's name.\n \n EX.\n - January 13\n - January 13, 2012\n - January 13 - 15, 2012\n - Tuesday, January 13, 2012\n \n Watch out for:\n - January 12:00\n - January 12.44\n - January 1222344\n */\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '(?:on\\\\s*?)?' + '(Sunday|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sun\\\\.?|Mon\\\\.?|Tue\\\\.?|Wed\\\\.?|Thu\\\\.?|Fri\\\\.?|Sat\\\\.?)' + '\\\\s*,?\\\\s*)?' + '(' + util.MONTH_PATTERN + ')' + '(?:-|\\/|\\\\s*,?\\\\s*)' + '(([0-9]{1,2})(?:st|nd|rd|th)?|' + util.ORDINAL_WORDS_PATTERN + ')(?!\\\\s*(?:am|pm))\\\\s*' + '' + '(?:' + '(?:to|\\\\-)\\\\s*' + '(([0-9]{1,2})(?:st|nd|rd|th)?| ' + util.ORDINAL_WORDS_PATTERN + ')\\\\s*' + ')?' + '(?:' + '(?:-|\\/|\\\\s*,?\\\\s*)' + '(?:([0-9]{4})\\\\s*(BE|AD|BC)?|([0-9]{1,4})\\\\s*(AD|BC))\\\\s*' + ')?' + '(?=\\\\W|$)(?!\\\\:\\\\d)', 'i');\n var WEEKDAY_GROUP = 2;\n var MONTH_NAME_GROUP = 3;\n var DATE_GROUP = 4;\n var DATE_NUM_GROUP = 5;\n var DATE_TO_GROUP = 6;\n var DATE_TO_NUM_GROUP = 7;\n var YEAR_GROUP = 8;\n var YEAR_BE_GROUP = 9;\n var YEAR_GROUP2 = 10;\n var YEAR_BE_GROUP2 = 11;\n\n exports.Parser = function ENMonthNameMiddleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_NUM_GROUP] ? parseInt(match[DATE_NUM_GROUP]) : util.ORDINAL_WORDS[match[DATE_GROUP].trim().replace('-', ' ').toLowerCase()];\n var year = null;\n\n if (match[YEAR_GROUP] || match[YEAR_GROUP2]) {\n year = match[YEAR_GROUP] || match[YEAR_GROUP2];\n year = parseInt(year);\n var yearBE = match[YEAR_BE_GROUP] || match[YEAR_BE_GROUP2];\n\n if (yearBE) {\n if (/BE/i.test(yearBE)) {\n // Buddhist Era\n year = year - 543;\n } else if (/BC/i.test(yearBE)) {\n // Before Christ\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as 'January 12 - 13, 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n var endDate = match[DATE_TO_NUM_GROUP] ? endDate = parseInt(match[DATE_TO_NUM_GROUP]) : util.ORDINAL_WORDS[match[DATE_TO_GROUP].replace('-', ' ').trim().toLowerCase()];\n result.end = result.start.clone();\n result.end.assign('day', endDate);\n }\n\n result.tags['ENMonthNameMiddleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 18 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n The parser for parsing month name and year.\n \n EX. \n - January\n - January 2012\n - January, 2012\n */\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(^|\\\\D\\\\s+|[^\\\\w\\\\s])' + '(' + util.MONTH_PATTERN + ')' + '\\\\s*' + '(?:' + '[,-]?\\\\s*([0-9]{4})(\\\\s*BE|AD|BC)?' + ')?' + '(?=[^\\\\s\\\\w]|\\\\s+[^0-9]|\\\\s+$|$)', 'i');\n var MONTH_NAME_GROUP = 2;\n var YEAR_GROUP = 3;\n var YEAR_BE_GROUP = 4;\n\n exports.Parser = function ENMonthNameParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var day = 1;\n var monthName = match[MONTH_NAME_GROUP];\n var month = util.MONTH_OFFSET[monthName.toLowerCase()];\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP]) {\n if (match[YEAR_BE_GROUP].match(/BE/)) {\n // Buddhist Era\n year = year - 543;\n } else if (match[YEAR_BE_GROUP].match(/BC/)) {\n // Before Christ\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.imply('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.imply('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n }\n\n if (result.text.match(/^\\w{3}$/)) {\n return false;\n }\n\n result.tags['ENMonthNameParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 19 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Date format with slash \"/\" (also \"-\" and \".\") between numbers\n - Tuesday 11/3/2015 \n - 11/3/2015\n - 11/3\n \n By default the paser us \"middle-endien\" format (US English),\n then fallback to little-endian if failed.\n - 11/3/2015 = November 3rd, 2015\n - 23/4/2015 = April 23th, 2015\n \n If \"littleEndian\" config is set, the parser will try the little-endian first. \n - 11/3/2015 = March 11th, 2015\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '(?:on\\\\s*?)?' + '((?:sun|mon|tues?|wed(?:nes)?|thu(?:rs?)?|fri|sat(?:ur)?)(?:day)?)' + '\\\\s*\\\\,?\\\\s*' + ')?' + '([0-3]{0,1}[0-9]{1})[\\\\/\\\\.\\\\-]([0-3]{0,1}[0-9]{1})' + '(?:' + '[\\\\/\\\\.\\\\-]' + '([0-9]{4}\\s*\\,?\\s*|[0-9]{2}\\s*\\,?\\s*)' + ')?' + '(\\\\W|$)', 'i');\n var DAYS_OFFSET = {\n 'sunday': 0,\n 'sun': 0,\n 'monday': 1,\n 'mon': 1,\n 'tuesday': 2,\n 'wednesday': 3,\n 'wed': 3,\n 'thursday': 4,\n 'thur': 4,\n 'friday': 5,\n 'fri': 5,\n 'saturday': 6,\n 'sat': 6\n };\n var OPENNING_GROUP = 1;\n var ENDING_GROUP = 6;\n var WEEKDAY_GROUP = 2;\n var FIRST_NUMBERS_GROUP = 3;\n var SECOND_NUMBERS_GROUP = 4;\n var YEAR_GROUP = 5;\n\n exports.Parser = function ENSlashDateFormatParser(config) {\n Parser.apply(this, arguments);\n config = config || {};\n var littleEndian = config.littleEndian;\n var MONTH_GROUP = littleEndian ? SECOND_NUMBERS_GROUP : FIRST_NUMBERS_GROUP;\n var DAY_GROUP = littleEndian ? FIRST_NUMBERS_GROUP : SECOND_NUMBERS_GROUP;\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') {\n // Long skip, if there is some overlapping like:\n // XX[/YY/ZZ]\n // [XX/YY/]ZZ\n match.index += match[0].length;\n return;\n }\n\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length);\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n if (text.match(/^\\d\\.\\d$/)) return;\n if (text.match(/^\\d\\.\\d{1,2}\\.\\d{1,2}$/)) return; // MM/dd -> OK\n // MM.dd -> NG\n\n if (!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return;\n var date = null;\n var year = match[YEAR_GROUP] || dayjs(ref).year() + '';\n var month = match[MONTH_GROUP];\n var day = match[DAY_GROUP];\n month = parseInt(month);\n day = parseInt(day);\n year = parseInt(year);\n\n if (month < 1 || month > 12) {\n if (month > 12) {\n // dd/mm/yyyy date format if day looks like a month, and month\n // looks like a day.\n if (day >= 1 && day <= 12 && month >= 13 && month <= 31) {\n // unambiguous\n var tday = month;\n month = day;\n day = tday;\n } else {\n // both month and day are <= 12\n return null;\n }\n }\n }\n\n if (day < 1 || day > 31) return null;\n\n if (year < 100) {\n if (year > 50) {\n year = year + 1900;\n } else {\n year = year + 2000;\n }\n }\n\n result.start.assign('day', day);\n result.start.assign('month', month);\n\n if (match[YEAR_GROUP]) {\n result.start.assign('year', year);\n } else {\n result.start.imply('year', year);\n } //Day of week\n\n\n if (match[WEEKDAY_GROUP]) {\n result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]);\n }\n\n result.tags['ENSlashDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Date format with slash \"/\" between numbers like ENSlashDateFormatParser,\n but this parser expect year before month and date. \n - YYYY/MM/DD\n - YYYY-MM-DD\n - YYYY.MM.DD\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '([0-9]{4})[\\\\-\\\\.\\\\/]' + '((?:' + util.MONTH_PATTERN + '|[0-9]{1,2}))[\\\\-\\\\.\\\\/]' + '([0-9]{1,2})' + '(?=\\\\W|$)', 'i');\n var YEAR_NUMBER_GROUP = 2;\n var MONTH_NUMBER_GROUP = 3;\n var DATE_NUMBER_GROUP = 4;\n\n exports.Parser = function ENSlashDateFormatStartWithYearParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n var month = match[MONTH_NUMBER_GROUP].toLowerCase();\n month = util.MONTH_OFFSET[month] | month;\n result.start.assign('year', parseInt(match[YEAR_NUMBER_GROUP]));\n result.start.assign('month', parseInt(month));\n result.start.assign('day', parseInt(match[DATE_NUMBER_GROUP]));\n\n if (dayjs(result.start.get('month')) > 12 || dayjs(result.start.get('month')) < 1 || dayjs(result.start.get('day')) > 31 || dayjs(result.start.get('day')) < 1) {\n return null;\n }\n\n result.tags['ENDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 21 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Month/Year date format with slash \"/\" (also \"-\" and \".\") between numbers \n - 11/05\n - 06/2005\n */\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(^|[^\\\\d/]\\\\s+|[^\\\\w\\\\s])' + '([0-9]|0[1-9]|1[012])/([0-9]{4})' + '(?=[^\\\\d/]|$)', 'i');\n var OPENNING_GROUP = 1;\n var MONTH_GROUP = 2;\n var YEAR_GROUP = 3;\n\n exports.Parser = function ENSlashMonthFormatParser(argument) {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length).trim();\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n var year = match[YEAR_GROUP];\n var month = match[MONTH_GROUP];\n var day = 1;\n month = parseInt(month);\n year = parseInt(year);\n result.start.imply('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n result.tags['ENSlashMonthFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('' + '(\\\\W|^)' + '(?:within\\\\s*)?' + '(' + util.TIME_UNIT_PATTERN + ')' + '(?:ago|before|earlier)(?=(?:\\\\W|$))', 'i');\n var STRICT_PATTERN = new RegExp('' + '(\\\\W|^)' + '(?:within\\\\s*)?' + '(' + util.TIME_UNIT_STRICT_PATTERN + ')' + 'ago(?=(?:\\\\W|$))', 'i');\n\n exports.Parser = function ENTimeAgoFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var fragments = util.extractDateTimeUnitFragments(match[2]);\n var date = dayjs(ref);\n\n for (var key in fragments) {\n date = date.add(-fragments[key], key);\n }\n\n if (fragments['hour'] > 0 || fragments['minute'] > 0 || fragments['second'] > 0) {\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags['ENTimeAgoFormatParser'] = true;\n }\n\n if (fragments['d'] > 0 || fragments['month'] > 0 || fragments['year'] > 0) {\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n } else {\n if (fragments['week'] > 0) {\n result.start.imply('weekday', date.day());\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 23 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var FIRST_REG_PATTERN = new RegExp(\"(^|\\\\s|T)\" + \"(?:(?:at|from)\\\\s*)??\" + \"(\\\\d{1,4}|noon|midnight)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\:|\\\\:)(\\\\d{2})(?:\\\\.(\\\\d{1,6}))?\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?|O\\\\W*CLOCK))?\" + \"(?=\\\\W|$)\", 'i');\n var SECOND_REG_PATTERN = new RegExp(\"^\\\\s*\" + \"(\\\\-|\\\\–|\\\\~|\\\\〜|to|\\\\?)\\\\s*\" + \"(\\\\d{1,4})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})(?:\\\\.(\\\\d{1,6}))?\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?|O\\\\W*CLOCK))?\" + \"(?=\\\\W|$)\", 'i');\n var HOUR_GROUP = 2;\n var MINUTE_GROUP = 3;\n var SECOND_GROUP = 4;\n var MILLI_SECOND_GROUP = 5;\n var AM_PM_HOUR_GROUP = 6;\n\n exports.Parser = function ENTimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlapped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index + match[1].length;\n result.text = match[0].substring(match[1].length);\n result.tags['ENTimeExpressionParser'] = true;\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Millisecond\n\n if (match[MILLI_SECOND_GROUP] != null) {\n var millisecond = parseInt(match[MILLI_SECOND_GROUP].substring(0, 3));\n if (millisecond >= 1000) return null;\n result.start.assign('millisecond', millisecond);\n } // ----- Second\n\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.start.assign('second', second);\n } // ----- Hours\n\n\n if (match[HOUR_GROUP].toLowerCase() == \"noon\") {\n meridiem = 1;\n hour = 12;\n } else if (match[HOUR_GROUP].toLowerCase() == \"midnight\") {\n meridiem = 0;\n hour = 0;\n } else {\n hour = parseInt(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM \n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } else {\n if (hour < 12) {\n result.start.imply('meridiem', 0);\n } else {\n result.start.imply('meridiem', 1);\n }\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n return result;\n } // Pattern \"YY.YY -XXXX\" is more like timezone offset\n\n\n if (match[0].match(/^\\s*(\\+|\\-)\\s*\\d{3,4}$/)) {\n return result;\n }\n\n if (result.end == null) {\n result.end = new ParsedComponents(null, result.start.date());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Millisecond\n\n if (match[MILLI_SECOND_GROUP] != null) {\n var millisecond = parseInt(match[MILLI_SECOND_GROUP].substring(0, 3));\n if (millisecond >= 1000) return null;\n result.end.assign('millisecond', millisecond);\n } // ----- Second\n\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[2]); // ----- Minute\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n if (minute >= 60) return result;\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM \n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n\n if (hour == 12) {\n hour = 0;\n\n if (!result.end.isCertain('day')) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n }\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n } else {\n var startAtPM = result.start.isCertain('meridiem') && result.start.get('meridiem') == 1;\n\n if (startAtPM && result.start.get('hour') > hour) {\n // 10pm - 1 (am)\n result.end.imply('meridiem', 0);\n } else if (hour > 12) {\n result.end.imply('meridiem', 1);\n }\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 24 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(4);\n\n var PATTERN = new RegExp('' +\n /*match[1]*/\n '(\\\\W|^)' +\n /*match[2]*/\n '(in )?' +\n /*match[3]*/\n '(' + util.TIME_UNIT_PATTERN + ')' +\n /*match[4]*/\n '(later|after|from now|henceforth|forward|out)?' +\n /*match[5]*/\n '(?=(?:\\\\W|$))', 'i');\n var STRICT_PATTERN = new RegExp('' +\n /*match[1]*/\n '(\\\\W|^)' +\n /*match[2]*/\n '(in )?' +\n /*match[3]*/\n '(' + util.TIME_UNIT_STRICT_PATTERN + ')' +\n /*match[4]*/\n '(later|from now)?' +\n /*match[5]*/\n '(?=(?:\\\\W|$))', 'i');\n\n exports.Parser = function ENTimeLaterFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var prefix = match[2];\n var suffix = match[4];\n if (!prefix && !suffix) return null;\n var preamble = match[1];\n var text = match[0].substr(preamble.length, match[0].length - preamble.length);\n var index = match.index + preamble.length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var fragments = util.extractDateTimeUnitFragments(match[3]);\n var date = dayjs(ref);\n\n for (var key in fragments) {\n date = date.add(fragments[key], key);\n }\n\n if (fragments['hour'] > 0 || fragments['minute'] > 0 || fragments['second'] > 0) {\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags['ENTimeAgoFormatParser'] = true;\n }\n\n if (fragments['d'] > 0 || fragments['month'] > 0 || fragments['year'] > 0) {\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n } else {\n if (fragments['week'] > 0) {\n result.start.imply('weekday', date.day());\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)(now|today|tonight|last\\s*night|(?:tomorrow|tmr|yesterday)\\s*|tomorrow|tmr|yesterday)(?=\\W|$)/i;\n\n exports.Parser = function ENCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n var lowerText = text.toLowerCase();\n\n if (lowerText == 'tonight') {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (/^tomorrow|^tmr/.test(lowerText)) {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (/^yesterday/.test(lowerText)) {\n startMoment = startMoment.add(-1, 'day');\n } else if (lowerText.match(/last\\s*night/)) {\n result.start.imply('hour', 0);\n\n if (refMoment.hour() > 6) {\n startMoment = startMoment.add(-1, 'day');\n }\n } else if (lowerText.match(\"now\")) {\n result.start.assign('hour', refMoment.hour());\n result.start.assign('minute', refMoment.minute());\n result.start.assign('second', refMoment.second());\n result.start.assign('millisecond', refMoment.millisecond());\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['ENCasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)((this)?\\s*(morning|afternoon|evening|noon|night))/i;\n var TIME_MATCH = 4;\n\n exports.Parser = function ENCasualTimeParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n if (!match[TIME_MATCH]) TIME_MATCH = 3;\n\n switch (match[TIME_MATCH].toLowerCase()) {\n case 'afternoon':\n result.start.imply('meridiem', 1);\n result.start.imply('hour', 15);\n break;\n\n case 'evening':\n case 'night':\n result.start.imply('meridiem', 1);\n result.start.imply('hour', 20);\n break;\n\n case 'morning':\n result.start.imply('meridiem', 0);\n result.start.imply('hour', 6);\n break;\n\n case 'noon':\n result.start.imply('meridiem', 0);\n result.start.imply('hour', 12);\n break;\n }\n\n result.tags['ENCasualTimeParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 27 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(28);\n\n var PATTERN = /(?:(同|今|本|((昭和|平成|令和)?([0-90-9]{1,4}|元)))年\\s*)?([0-90-9]{1,2})月\\s*([0-90-9]{1,2})日/i;\n var SPECIAL_YEAR_GROUP = 1;\n var TYPICAL_YEAR_GROUP = 2;\n var ERA_GROUP = 3;\n var YEAR_NUMBER_GROUP = 4;\n var MONTH_GROUP = 5;\n var DAY_GROUP = 6;\n\n exports.Parser = function JPStandardParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0],\n index: match.index,\n ref: ref\n });\n var month = match[MONTH_GROUP];\n month = util.toHankaku(month);\n month = parseInt(month);\n var day = match[DAY_GROUP];\n day = util.toHankaku(day);\n day = parseInt(day);\n result.start.assign('day', day);\n result.start.assign('month', month);\n\n if (match[TYPICAL_YEAR_GROUP]) {\n var year = match[YEAR_NUMBER_GROUP];\n\n if (year == '元') {\n year = 1;\n } else {\n year = util.toHankaku(year);\n year = parseInt(year);\n }\n\n if (match[ERA_GROUP] == '令和') {\n year += 2018;\n } else if (match[ERA_GROUP] == '平成') {\n year += 1988;\n } else if (match[ERA_GROUP] == '昭和') {\n year += 1925;\n }\n\n result.start.assign('year', year);\n } else if (match[SPECIAL_YEAR_GROUP] && match[SPECIAL_YEAR_GROUP].match('同|今|本')) {\n var moment = dayjs(ref);\n result.start.assign('year', moment.year());\n } else {\n var _year = parser.findYearClosestToRef(ref, day, month);\n\n result.start.imply('year', _year);\n }\n\n result.tags['JPStandardParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 28 */\n\n /***/\n function (module, exports) {\n /**\n * to-hankaku.js\n * convert to ascii code strings.\n *\n * @version 1.0.1\n * @author think49\n * @url https://gist.github.com/964592\n * @license http://www.opensource.org/licenses/mit-license.php (The MIT License)\n */\n exports.toHankaku = function (String, fromCharCode) {\n function toHankaku(string) {\n return String(string).replace(/\\u2019/g, \"'\").replace(/\\u201D/g, \"\\\"\").replace(/\\u3000/g, \" \").replace(/\\uFFE5/g, \"\\xA5\").replace(/[\\uFF01\\uFF03-\\uFF06\\uFF08\\uFF09\\uFF0C-\\uFF19\\uFF1C-\\uFF1F\\uFF21-\\uFF3B\\uFF3D\\uFF3F\\uFF41-\\uFF5B\\uFF5D\\uFF5E]/g, alphaNum);\n }\n\n function alphaNum(token) {\n return fromCharCode(token.charCodeAt(0) - 65248);\n }\n\n return toHankaku;\n }(String, String.fromCharCode);\n /**\n * to-zenkaku.js\n * convert to multi byte strings.\n *\n * @version 1.0.2\n * @author think49\n * @url https://gist.github.com/964592\n * @license http://www.opensource.org/licenses/mit-license.php (The MIT License)\n */\n\n\n exports.toZenkaku = function (String, fromCharCode) {\n function toZenkaku(string) {\n return String(string).replace(/\\u0020/g, \"\\u3000\").replace(/\\u0022/g, \"\\u201D\").replace(/\\u0027/g, \"\\u2019\").replace(/\\u00A5/g, \"\\uFFE5\").replace(/[!#-&(),-9\\u003C-?A-[\\u005D_a-{}~]/g, alphaNum);\n }\n\n function alphaNum(token) {\n return fromCharCode(token.charCodeAt(0) + 65248);\n }\n\n return toZenkaku;\n }(String, String.fromCharCode);\n /***/\n\n },\n /* 29 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /今日|当日|昨日|明日|今夜|今夕|今晩|今朝/i;\n\n exports.Parser = function JPCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index;\n var text = match[0];\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n\n if (text == '今夜' || text == '今夕' || text == '今晩') {\n // Normally means this coming midnight \n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (text == '明日') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 4) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (text == '昨日') {\n startMoment = startMoment.add(-1, 'day');\n } else if (text.match(\"今朝\")) {\n result.start.imply('hour', 6);\n result.start.imply('meridiem', 0);\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['JPCasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n /*\n Valid patterns:\n - esta manhã -> today in the morning\n - esta tarde -> today in the afternoon/evening\n - esta noite -> tonight\n - ontem de -> yesterday in the morning\n - ontem a tarde -> yesterday in the afternoon/evening\n - ontem a noite -> yesterday at night\n - amanhã de manhã -> tomorrow in the morning\n - amanhã a tarde -> tomorrow in the afternoon/evening\n - amanhã a noite -> tomorrow at night\n - hoje -> today\n - ontem -> yesterday\n - amanhã -> tomorrow\n */\n\n\n var PATTERN = /(\\W|^)(agora|esta\\s*(manhã|tarde|noite)|(ontem|amanhã)\\s*(de|à)\\s*(manhã|tarde|noite)|hoje|amanhã|ontem|noite)(?=\\W|$)/i;\n\n exports.Parser = function PTCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n var lowerText = text.toLowerCase().replace(/\\s+/g, ' ');\n\n if (lowerText == 'amanhã') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (lowerText == 'ontem') {\n startMoment = startMoment.add(-1, 'day');\n } else if (lowerText == 'noite') {\n result.start.imply('hour', 0);\n\n if (refMoment.hour() > 6) {\n startMoment = startMoment.add(-1, 'day');\n }\n } else if (lowerText.match(\"esta\")) {\n var secondMatch = match[3].toLowerCase();\n\n if (secondMatch == \"tarde\") {\n result.start.imply('hour', 18);\n } else if (secondMatch == \"manhã\") {\n result.start.imply('hour', 6);\n } else if (secondMatch == \"noite\") {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n }\n } else if (lowerText.match(/de|à/)) {\n var firstMatch = match[4].toLowerCase();\n\n if (firstMatch === 'ontem') {\n startMoment = startMoment.add(-1, 'day');\n } else if (firstMatch === 'amanhã') {\n startMoment = startMoment.add(1, 'day');\n }\n\n var secondMatch = match[6].toLowerCase();\n\n if (secondMatch == \"tarde\") {\n result.start.imply('hour', 18);\n } else if (secondMatch == \"manhã\") {\n result.start.imply('hour', 9);\n } else if (secondMatch == \"noite\") {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n }\n } else if (lowerText.match(\"agora\")) {\n result.start.imply('hour', refMoment.hour());\n result.start.imply('minute', refMoment.minute());\n result.start.imply('second', refMoment.second());\n result.start.imply('millisecond', refMoment.millisecond());\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['PTCasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 31 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)(dentro\\s*de|em|em*até)\\s*([0-9]+|mei[oa]|uma?)\\s*(minutos?|horas?|dias?)\\s*(?=(?:\\W|$))/i;\n\n exports.Parser = function PTDeadlineFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = parseInt(match[3]);\n\n if (isNaN(num)) {\n if (match[3].match(/(meio|meia)/)) {\n num = 0.5;\n } else {\n num = 1;\n }\n }\n\n var date = dayjs(ref);\n\n if (match[4].match(/dia/)) {\n date = date.add(num, 'd');\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n }\n\n if (match[4].match(/hora/)) {\n date = date.add(num, 'hour');\n } else if (match[4].match(/minuto/)) {\n date = date.add(num, 'minute');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.tags['PTDeadlineFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 32 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(33);\n\n var DAYS_OFFSET = util.WEEKDAY_OFFSET;\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(domingo|segunda|segunda-feira|terça|terça-feira|quarta|quarta-feira|quinta|quinta-feira|sexta|sexta-feira|sábado|sabado|dom|seg|ter|qua|qui|sex|sab)\\\\s*,?\\\\s*)?' + '([0-9]{1,2})(?:º|ª|°)?' + '(?:\\\\s*(?:desde|de|\\\\-|\\\\–|ao?|\\\\s)\\\\s*([0-9]{1,2})(?:º|ª|°)?)?\\\\s*(?:de)?\\\\s*' + '(Jan(?:eiro|\\\\.)?|Fev(?:ereiro|\\\\.)?|Mar(?:ço|\\\\.)?|Abr(?:il|\\\\.)?|Mai(?:o|\\\\.)?|Jun(?:ho|\\\\.)?|Jul(?:ho|\\\\.)?|Ago(?:sto|\\\\.)?|Set(?:embro|\\\\.)?|Out(?:ubro|\\\\.)?|Nov(?:embro|\\\\.)?|Dez(?:embro|\\\\.)?)' + '(?:\\\\s*(?:de?)?(\\\\s*[0-9]{1,4}(?![^\\\\s]\\\\d))(\\\\s*[ad]\\\\.?\\\\s*c\\\\.?|a\\\\.?\\\\s*d\\\\.?)?)?' + '(?=\\\\W|$)', 'i');\n var WEEKDAY_GROUP = 2;\n var DATE_GROUP = 3;\n var DATE_TO_GROUP = 4;\n var MONTH_NAME_GROUP = 5;\n var YEAR_GROUP = 6;\n var YEAR_BE_GROUP = 7;\n\n exports.Parser = function PTMonthNameLittleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_GROUP];\n day = parseInt(day);\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP]) {\n if (/a\\.?\\s*c\\.?/i.test(match[YEAR_BE_GROUP])) {\n // antes de Cristo\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as '12 - 13 January 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n result.end = result.start.clone();\n result.end.assign('day', parseInt(match[DATE_TO_GROUP]));\n }\n\n result.tags['PTMonthNameLittleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 33 */\n\n /***/\n function (module, exports) {\n exports.WEEKDAY_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'segunda': 1,\n 'segunda-feira': 1,\n 'seg': 1,\n 'terça': 2,\n 'terca': 2,\n 'terça-feira': 2,\n 'terca-feira': 2,\n 'ter': 2,\n 'quarta': 3,\n 'quarta-feira': 3,\n 'qua': 3,\n 'quinta': 4,\n 'quinta-feira': 4,\n 'qui': 4,\n 'sexta': 5,\n 'sexta-feira': 5,\n 'sex': 5,\n 'sábado': 6,\n 'sabado': 6,\n 'sab': 6\n };\n exports.MONTH_OFFSET = {\n 'janeiro': 1,\n 'jan': 1,\n 'jan.': 1,\n 'fevereiro': 2,\n 'fev': 2,\n 'fev.': 2,\n 'março': 3,\n 'mar': 3,\n 'mar.': 3,\n 'abril': 4,\n 'abr': 4,\n 'abr.': 4,\n 'maio': 5,\n 'mai': 5,\n 'mai.': 5,\n 'junho': 6,\n 'jun': 6,\n 'jun.': 6,\n 'julho': 7,\n 'jul': 7,\n 'jul.': 7,\n 'agosto': 8,\n 'ago': 8,\n 'ago.': 8,\n 'setembro': 9,\n 'set': 9,\n 'set.': 9,\n 'outubro': 10,\n 'out': 10,\n 'out.': 10,\n 'novembro': 11,\n 'nov': 11,\n 'nov.': 11,\n 'dezembro': 12,\n 'dez': 12,\n 'dez.': 12\n };\n /***/\n },\n /* 34 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Date format with slash \"/\" (also \"-\" and \".\") between numbers\n - Martes 3/11/2015\n - 3/11/2015\n - 3/11\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '((?:domingo|dom|segunda|segunda-feira|seg|terça|terça-feira|ter|quarta|quarta-feira|qua|quinta|quinta-feira|qui|sexta|sexta-feira|sex|s[áa]bado|sab))' + '\\\\s*\\\\,?\\\\s*' + ')?' + '([0-1]{0,1}[0-9]{1})[\\\\/\\\\.\\\\-]([0-3]{0,1}[0-9]{1})' + '(?:' + '[\\\\/\\\\.\\\\-]' + '([0-9]{4}\\s*\\,?\\s*|[0-9]{2}\\s*\\,?\\s*)' + ')?' + '(\\\\W|$)', 'i');\n var DAYS_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'segunda': 1,\n 'segunda-feira': 1,\n 'seg': 1,\n 'terça': 2,\n 'terça-feira': 2,\n 'ter': 2,\n 'quarta': 3,\n 'quarta-feira': 3,\n 'qua': 3,\n 'quinta': 4,\n 'quinta-feira': 4,\n 'qui': 4,\n 'sexta': 5,\n 'sexta-feira': 5,\n 'sex': 5,\n 'sábado': 6,\n 'sabado': 6,\n 'sab': 6\n };\n var OPENNING_GROUP = 1;\n var ENDING_GROUP = 6; // in Spanish we use day/month/year\n\n var WEEKDAY_GROUP = 2;\n var MONTH_GROUP = 4;\n var DAY_GROUP = 3;\n var YEAR_GROUP = 5;\n\n exports.Parser = function PTSlashDateFormatParser(argument) {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') {\n // Long skip, if there is some overlapping like:\n // XX[/YY/ZZ]\n // [XX/YY/]ZZ\n match.index += match[0].length;\n return;\n }\n\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length);\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n if (text.match(/^\\d\\.\\d$/)) return;\n if (text.match(/^\\d\\.\\d{1,2}\\.\\d{1,2}$/)) return; // MM/dd -> OK\n // MM.dd -> NG\n\n if (!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return;\n var date = null;\n var year = match[YEAR_GROUP] || dayjs(ref).year() + '';\n var month = match[MONTH_GROUP];\n var day = match[DAY_GROUP];\n month = parseInt(month);\n day = parseInt(day);\n year = parseInt(year);\n\n if (month < 1 || month > 12) {\n if (month > 12) {\n // dd/mm/yyyy date format if day looks like a month, and month\n // looks like a day.\n if (day >= 1 && day <= 12 && month >= 13 && month <= 31) {\n // unambiguous\n var tday = month;\n month = day;\n day = tday;\n } else {\n // both month and day are <= 12\n return null;\n }\n }\n }\n\n if (day < 1 || day > 31) return null;\n\n if (year < 100) {\n if (year > 50) {\n year = year + 1900;\n } else {\n year = year + 2000;\n }\n }\n\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year); //Day of week\n\n if (match[WEEKDAY_GROUP]) {\n result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]);\n }\n\n result.tags['PTSlashDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 35 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)há\\s*([0-9]+|mei[oa]|uma?)\\s*(minutos?|horas?|semanas?|dias?|mes(es)?|anos?)(?=(?:\\W|$))/i;\n\n exports.Parser = function PTTimeAgoFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = parseInt(match[2]);\n\n if (isNaN(num)) {\n if (match[2].match(/mei/)) {\n num = 0.5;\n } else {\n num = 1;\n }\n }\n\n var date = dayjs(ref);\n\n if (match[3].match(/hora/) || match[3].match(/minuto/)) {\n if (match[3].match(/hora/)) {\n date = date.add(-num, 'hour');\n } else if (match[3].match(/minuto/)) {\n date = date.add(-num, 'minute');\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.tags['PTTimeAgoFormatParser'] = true;\n return result;\n }\n\n if (match[3].match(/semana/)) {\n date = date.add(-num, 'week');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.imply('weekday', date.day());\n return result;\n }\n\n if (match[3].match(/dia/)) {\n date = date.add(-num, 'd');\n }\n\n if (match[3].match(/mes/)) {\n date = date.add(-num, 'month');\n }\n\n if (match[3].match(/ano/)) {\n date = date.add(-num, 'year');\n }\n\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n return result;\n };\n };\n /***/\n\n },\n /* 36 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var FIRST_REG_PATTERN = new RegExp(\"(^|\\\\s|T)\" + \"(?:(?:ao?|às?|das|da|de|do)\\\\s*)?\" + \"(\\\\d{1,4}|meio-dia|meia-noite|meio dia|meia noite)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\:|\\\\:)(\\\\d{2})\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var SECOND_REG_PATTERN = new RegExp(\"^\\\\s*\" + \"(\\\\-|\\\\–|\\\\~|\\\\〜|a(?:o)?|\\\\?)\\\\s*\" + \"(\\\\d{1,4})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var HOUR_GROUP = 2;\n var MINUTE_GROUP = 3;\n var SECOND_GROUP = 4;\n var AM_PM_HOUR_GROUP = 5;\n\n exports.Parser = function PTTimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlaped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index + match[1].length;\n result.text = match[0].substring(match[1].length);\n result.tags['PTTimeExpressionParser'] = true;\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.start.assign('second', second);\n } // ----- Hours\n\n\n if (match[HOUR_GROUP].toLowerCase().match(/meio\\-di/)) {\n meridiem = 1;\n hour = 12;\n } else if (match[HOUR_GROUP].toLowerCase() == \"meia-noite\") {\n meridiem = 0;\n hour = 0;\n } else {\n hour = parseInt(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n // Not accept number only result\n if (result.text.match(/^\\d+$/)) {\n return null;\n }\n\n return result;\n } // Pattern \"YY.YY -XXXX\" is more like timezone offset\n\n\n if (match[0].match(/^\\s*(\\+|\\-)\\s*\\d{3,4}$/)) {\n return result;\n }\n\n if (result.end == null) {\n result.end = new ParsedComponents(null, result.start.date());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[2]); // ----- Minute\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n if (minute >= 60) return result;\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n\n if (match[AM_PM_HOUR_GROUP][0].toLowerCase() == \"a\") {\n meridiem = 0;\n\n if (hour == 12) {\n hour = 0;\n\n if (!result.end.isCertain('day')) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n }\n }\n\n if (match[AM_PM_HOUR_GROUP][0].toLowerCase() == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n } else if (hour >= 12) {\n meridiem = 1;\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 37 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var updateParsedComponent = __webpack_require__(5).updateParsedComponent;\n\n var DAYS_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'segunda': 1,\n 'segunda-feira': 1,\n 'seg': 1,\n 'terça': 2,\n 'terça-feira': 2,\n 'ter': 2,\n 'quarta': 3,\n 'quarta-feira': 3,\n 'qua': 3,\n 'quinta': 4,\n 'quinta-feira': 4,\n 'qui': 4,\n 'sexta': 5,\n 'sexta-feira': 5,\n 'sex': 5,\n 'sábado': 6,\n 'sabado': 6,\n 'sab': 6\n };\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(?:\\\\,|\\\\(|\\\\()\\\\s*)?' + '(?:(este|esta|passado|pr[oó]ximo)\\\\s*)?' + '(' + Object.keys(DAYS_OFFSET).join('|') + ')' + '(?:\\\\s*(?:\\\\,|\\\\)|\\\\)))?' + '(?:\\\\s*(este|esta|passado|pr[óo]ximo)\\\\s*semana)?' + '(?=\\\\W|$)', 'i');\n var PREFIX_GROUP = 2;\n var WEEKDAY_GROUP = 3;\n var POSTFIX_GROUP = 4;\n\n exports.Parser = function PTWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();\n var offset = DAYS_OFFSET[dayOfWeek];\n if (offset === undefined) return null;\n var modifier = null;\n var prefix = match[PREFIX_GROUP];\n var postfix = match[POSTFIX_GROUP];\n\n if (prefix || postfix) {\n var norm = prefix || postfix;\n norm = norm.toLowerCase();\n\n if (norm == 'passado') {\n modifier = 'this';\n } else if (norm == 'próximo' || norm == 'proximo') {\n modifier = 'next';\n } else if (norm == 'este') {\n modifier = 'this';\n }\n }\n\n updateParsedComponent(result, ref, offset, modifier);\n result.tags['PTWeekdayParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n /*\n Valid patterns:\n - esta mañana -> today in the morning\n - esta tarde -> today in the afternoon/evening\n - esta noche -> tonight\n - ayer por la mañana -> yesterday in the morning\n - ayer por la tarde -> yesterday in the afternoon/evening\n - ayer por la noche -> yesterday at night\n - mañana por la mañana -> tomorrow in the morning\n - mañana por la tarde -> tomorrow in the afternoon/evening\n - mañana por la noche -> tomorrow at night\n - anoche -> tomorrow at night\n - hoy -> today\n - ayer -> yesterday\n - mañana -> tomorrow\n */\n\n\n var PATTERN = /(\\W|^)(ahora|esta\\s*(mañana|tarde|noche)|(ayer|mañana)\\s*por\\s*la\\s*(mañana|tarde|noche)|hoy|mañana|ayer|anoche)(?=\\W|$)/i;\n\n exports.Parser = function ESCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n var lowerText = text.toLowerCase().replace(/\\s+/g, ' ');\n\n if (lowerText == 'mañana') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (lowerText == 'ayer') {\n startMoment = startMoment.add(-1, 'day');\n } else if (lowerText == 'anoche') {\n result.start.imply('hour', 0);\n\n if (refMoment.hour() > 6) {\n startMoment = startMoment.add(-1, 'day');\n }\n } else if (lowerText.match(\"esta\")) {\n var secondMatch = match[3].toLowerCase();\n\n if (secondMatch == \"tarde\") {\n result.start.imply('hour', 18);\n } else if (secondMatch == \"mañana\") {\n result.start.imply('hour', 6);\n } else if (secondMatch == \"noche\") {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n }\n } else if (lowerText.match(/por\\s*la/)) {\n var firstMatch = match[4].toLowerCase();\n\n if (firstMatch === 'ayer') {\n startMoment = startMoment.add(-1, 'day');\n } else if (firstMatch === 'mañana') {\n startMoment = startMoment.add(1, 'day');\n }\n\n var secondMatch = match[5].toLowerCase();\n\n if (secondMatch == \"tarde\") {\n result.start.imply('hour', 18);\n } else if (secondMatch == \"mañana\") {\n result.start.imply('hour', 9);\n } else if (secondMatch == \"noche\") {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n }\n } else if (lowerText.match(\"ahora\")) {\n result.start.imply('hour', refMoment.hour());\n result.start.imply('minute', refMoment.minute());\n result.start.imply('second', refMoment.second());\n result.start.imply('millisecond', refMoment.millisecond());\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['ESCasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 39 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)(dentro\\s*de|en)\\s*([0-9]+|medi[oa]|una?)\\s*(minutos?|horas?|d[ií]as?)\\s*(?=(?:\\W|$))/i;\n\n exports.Parser = function ESDeadlineFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = parseInt(match[3]);\n\n if (isNaN(num)) {\n if (match[3].match(/medi/)) {\n num = 0.5;\n } else {\n num = 1;\n }\n }\n\n var date = dayjs(ref);\n\n if (match[4].match(/d[ií]a/)) {\n date = date.add(num, 'd');\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n }\n\n if (match[4].match(/hora/)) {\n date = date.add(num, 'hour');\n } else if (match[4].match(/minuto/)) {\n date = date.add(num, 'minute');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.tags['ESDeadlineFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 40 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)hace\\s*([0-9]+|medi[oa]|una?)\\s*(minutos?|horas?|semanas?|d[ií]as?|mes(es)?|años?)(?=(?:\\W|$))/i;\n\n exports.Parser = function ESTimeAgoFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = parseInt(match[2]);\n\n if (isNaN(num)) {\n if (match[2].match(/medi/)) {\n num = 0.5;\n } else {\n num = 1;\n }\n }\n\n var date = dayjs(ref);\n\n if (match[3].match(/hora/) || match[3].match(/minuto/)) {\n if (match[3].match(/hora/)) {\n date = date.add(-num, 'hour');\n } else if (match[3].match(/minuto/)) {\n date = date.add(-num, 'minute');\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.tags['ESTimeAgoFormatParser'] = true;\n return result;\n }\n\n if (match[3].match(/semana/)) {\n date = date.add(-num, 'week');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.imply('weekday', date.day());\n return result;\n }\n\n if (match[3].match(/d[ií]a/)) {\n date = date.add(-num, 'd');\n }\n\n if (match[3].match(/mes/)) {\n date = date.add(-num, 'month');\n }\n\n if (match[3].match(/año/)) {\n date = date.add(-num, 'year');\n }\n\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n return result;\n };\n };\n /***/\n\n },\n /* 41 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var FIRST_REG_PATTERN = new RegExp(\"(^|\\\\s|T)\" + \"(?:(?:a las?|al?|desde|de)\\\\s*)?\" + \"(\\\\d{1,4}|mediod[ií]a|medianoche)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\:|\\\\:)(\\\\d{2})\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var SECOND_REG_PATTERN = new RegExp(\"^\\\\s*\" + \"(\\\\-|\\\\–|\\\\~|\\\\〜|a(?:\\s*las)?|\\\\?)\\\\s*\" + \"(\\\\d{1,4})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var HOUR_GROUP = 2;\n var MINUTE_GROUP = 3;\n var SECOND_GROUP = 4;\n var AM_PM_HOUR_GROUP = 5;\n\n exports.Parser = function ESTimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlaped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index + match[1].length;\n result.text = match[0].substring(match[1].length);\n result.tags['ESTimeExpressionParser'] = true;\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.start.assign('second', second);\n } // ----- Hours\n\n\n if (match[HOUR_GROUP].toLowerCase().match(/mediod/)) {\n meridiem = 1;\n hour = 12;\n } else if (match[HOUR_GROUP].toLowerCase() == \"medianoche\") {\n meridiem = 0;\n hour = 0;\n } else {\n hour = parseInt(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n // Not accept number only result\n if (result.text.match(/^\\d+$/)) {\n return null;\n }\n\n return result;\n } // Pattern \"YY.YY -XXXX\" is more like timezone offset\n\n\n if (match[0].match(/^\\s*(\\+|\\-)\\s*\\d{3,4}$/)) {\n return result;\n }\n\n if (result.end == null) {\n result.end = new ParsedComponents(null, result.start.date());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[2]); // ----- Minute\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n if (minute >= 60) return result;\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n\n if (match[AM_PM_HOUR_GROUP][0].toLowerCase() == \"a\") {\n meridiem = 0;\n\n if (hour == 12) {\n hour = 0;\n\n if (!result.end.isCertain('day')) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n }\n }\n\n if (match[AM_PM_HOUR_GROUP][0].toLowerCase() == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n } else if (hour >= 12) {\n meridiem = 1;\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 42 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var updateParsedComponent = __webpack_require__(5).updateParsedComponent;\n\n var DAYS_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'lunes': 1,\n 'lun': 1,\n 'martes': 2,\n 'mar': 2,\n 'miercoles': 3,\n 'miércoles': 3,\n 'mie': 3,\n 'jueves': 4,\n 'jue': 4,\n 'viernes': 5,\n 'vier': 5,\n 'sabado': 6,\n 'sábado': 6,\n 'sab': 6\n };\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(?:\\\\,|\\\\(|\\\\()\\\\s*)?' + '(?:(este|pasado|pr[oó]ximo)\\\\s*)?' + '(' + Object.keys(DAYS_OFFSET).join('|') + ')' + '(?:\\\\s*(?:\\\\,|\\\\)|\\\\)))?' + '(?:\\\\s*(este|pasado|pr[óo]ximo)\\\\s*week)?' + '(?=\\\\W|$)', 'i');\n var PREFIX_GROUP = 2;\n var WEEKDAY_GROUP = 3;\n var POSTFIX_GROUP = 4;\n\n exports.Parser = function ESWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();\n var offset = DAYS_OFFSET[dayOfWeek];\n if (offset === undefined) return null;\n var modifier = null;\n var prefix = match[PREFIX_GROUP];\n var postfix = match[POSTFIX_GROUP];\n\n if (prefix || postfix) {\n var norm = prefix || postfix;\n norm = norm.toLowerCase();\n\n if (norm == 'pasado') {\n modifier = 'this';\n } else if (norm == 'próximo' || norm == 'proximo') {\n modifier = 'next';\n } else if (norm == 'este') {\n modifier = 'this';\n }\n }\n\n updateParsedComponent(result, ref, offset, modifier);\n result.tags['ESWeekdayParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 43 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(44);\n\n var DAYS_OFFSET = util.WEEKDAY_OFFSET;\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(Domingo|Lunes|Martes|Miércoles|Miercoles|Jueves|Viernes|Sábado|Sabado|Dom|Lun|Mar|Mie|Jue|Vie|Sab)\\\\s*,?\\\\s*)?' + '([0-9]{1,2})(?:º|ª|°)?' + '(?:\\\\s*(?:desde|de|\\\\-|\\\\–|al?|hasta|\\\\s)\\\\s*([0-9]{1,2})(?:º|ª|°)?)?\\\\s*(?:de)?\\\\s*' + '(Ene(?:ro|\\\\.)?|Feb(?:rero|\\\\.)?|Mar(?:zo|\\\\.)?|Abr(?:il|\\\\.)?|May(?:o|\\\\.)?|Jun(?:io|\\\\.)?|Jul(?:io|\\\\.)?|Ago(?:sto|\\\\.)?|Sep(?:tiembre|\\\\.)?|Set(?:iembre|\\\\.)?|Oct(?:ubre|\\\\.)?|Nov(?:iembre|\\\\.)?|Dic(?:iembre|\\\\.)?)' + '(?:\\\\s*(?:del?)?(\\\\s*[0-9]{1,4}(?![^\\\\s]\\\\d))(\\\\s*[ad]\\\\.?\\\\s*c\\\\.?|a\\\\.?\\\\s*d\\\\.?)?)?' + '(?=\\\\W|$)', 'i');\n var WEEKDAY_GROUP = 2;\n var DATE_GROUP = 3;\n var DATE_TO_GROUP = 4;\n var MONTH_NAME_GROUP = 5;\n var YEAR_GROUP = 6;\n var YEAR_BE_GROUP = 7;\n\n exports.Parser = function ESMonthNameLittleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_GROUP];\n day = parseInt(day);\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP]) {\n if (/a\\.?\\s*c\\.?/i.test(match[YEAR_BE_GROUP])) {\n // antes de Cristo\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as '12 - 13 January 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n result.end = result.start.clone();\n result.end.assign('day', parseInt(match[DATE_TO_GROUP]));\n }\n\n result.tags['ESMonthNameLittleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 44 */\n\n /***/\n function (module, exports) {\n exports.WEEKDAY_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'lunes': 1,\n 'lun': 1,\n 'martes': 2,\n 'mar': 2,\n 'miércoles': 3,\n 'miercoles': 3,\n 'mie': 3,\n 'jueves': 4,\n 'jue': 4,\n 'viernes': 5,\n 'vie': 5,\n 'sábado': 6,\n 'sabado': 6,\n 'sab': 6\n };\n exports.MONTH_OFFSET = {\n 'enero': 1,\n 'ene': 1,\n 'ene.': 1,\n 'febrero': 2,\n 'feb': 2,\n 'feb.': 2,\n 'marzo': 3,\n 'mar': 3,\n 'mar.': 3,\n 'abril': 4,\n 'abr': 4,\n 'abr.': 4,\n 'mayo': 5,\n 'may': 5,\n 'may.': 5,\n 'junio': 6,\n 'jun': 6,\n 'jun.': 6,\n 'julio': 7,\n 'jul': 7,\n 'jul.': 7,\n 'agosto': 8,\n 'ago': 8,\n 'ago.': 8,\n 'septiembre': 9,\n 'sep': 9,\n 'sept': 9,\n 'sep.': 9,\n 'sept.': 9,\n 'octubre': 10,\n 'oct': 10,\n 'oct.': 10,\n 'noviembre': 11,\n 'nov': 11,\n 'nov.': 11,\n 'diciembre': 12,\n 'dic': 12,\n 'dic.': 12\n };\n /***/\n },\n /* 45 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Date format with slash \"/\" (also \"-\" and \".\") between numbers\n - Martes 3/11/2015\n - 3/11/2015\n - 3/11\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '((?:domingo|dom|lunes|lun|martes|mar|mi[ée]rcoles|mie|jueves|jue|viernes|vie|s[áa]bado|sab))' + '\\\\s*\\\\,?\\\\s*' + ')?' + '([0-1]{0,1}[0-9]{1})[\\\\/\\\\.\\\\-]([0-3]{0,1}[0-9]{1})' + '(?:' + '[\\\\/\\\\.\\\\-]' + '([0-9]{4}\\s*\\,?\\s*|[0-9]{2}\\s*\\,?\\s*)' + ')?' + '(\\\\W|$)', 'i');\n var DAYS_OFFSET = {\n 'domingo': 0,\n 'dom': 0,\n 'lunes': 1,\n 'lun': 1,\n 'martes': 2,\n 'mar': 2,\n 'miercoles': 3,\n 'miércoles': 3,\n 'mie': 3,\n 'jueves': 4,\n 'jue': 4,\n 'viernes': 5,\n 'vier': 5,\n 'sábado': 6,\n 'sabado': 6,\n 'sab': 6\n };\n var OPENNING_GROUP = 1;\n var ENDING_GROUP = 6; // in Spanish we use day/month/year\n\n var WEEKDAY_GROUP = 2;\n var MONTH_GROUP = 4;\n var DAY_GROUP = 3;\n var YEAR_GROUP = 5;\n\n exports.Parser = function ESSlashDateFormatParser(argument) {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') {\n // Long skip, if there is some overlapping like:\n // XX[/YY/ZZ]\n // [XX/YY/]ZZ\n match.index += match[0].length;\n return;\n }\n\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length);\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n if (text.match(/^\\d\\.\\d$/)) return;\n if (text.match(/^\\d\\.\\d{1,2}\\.\\d{1,2}$/)) return; // MM/dd -> OK\n // MM.dd -> NG\n\n if (!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return;\n var date = null;\n var year = match[YEAR_GROUP] || dayjs(ref).year() + '';\n var month = match[MONTH_GROUP];\n var day = match[DAY_GROUP];\n month = parseInt(month);\n day = parseInt(day);\n year = parseInt(year);\n\n if (month < 1 || month > 12) {\n if (month > 12) {\n // dd/mm/yyyy date format if day looks like a month, and month\n // looks like a day.\n if (day >= 1 && day <= 12 && month >= 13 && month <= 31) {\n // unambiguous\n var tday = month;\n month = day;\n day = tday;\n } else {\n // both month and day are <= 12\n return null;\n }\n }\n }\n\n if (day < 1 || day > 31) return null;\n\n if (year < 100) {\n if (year > 50) {\n year = year + 1900;\n } else {\n year = year + 2000;\n }\n }\n\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year); //Day of week\n\n if (match[WEEKDAY_GROUP]) {\n result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]);\n }\n\n result.tags['ESSlashDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 46 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)(maintenant|aujourd'hui|ajd|cette\\s*nuit|la\\s*veille|(demain|hier)(\\s*(matin|soir|aprem|après-midi))?|ce\\s*(matin|soir)|cet\\s*(après-midi|aprem))(?=\\W|$)/i;\n\n exports.Parser = function FRCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n var lowerText = text.toLowerCase();\n\n if (lowerText.match(/demain/)) {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n }\n\n if (lowerText.match(/hier/)) {\n startMoment = startMoment.add(-1, 'day');\n }\n\n if (lowerText.match(/cette\\s*nuit/)) {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (lowerText.match(/la\\s*veille/)) {\n result.start.imply('hour', 0);\n\n if (refMoment.hour() > 6) {\n startMoment = startMoment.add(-1, 'day');\n }\n } else if (lowerText.match(/(après-midi|aprem)/)) {\n result.start.imply('hour', 14);\n } else if (lowerText.match(/(soir)/)) {\n result.start.imply('hour', 18);\n } else if (lowerText.match(/matin/)) {\n result.start.imply('hour', 8);\n } else if (lowerText.match(\"maintenant\")) {\n result.start.imply('hour', refMoment.hour());\n result.start.imply('minute', refMoment.minute());\n result.start.imply('second', refMoment.second());\n result.start.imply('millisecond', refMoment.millisecond());\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['FRCasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 47 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(9);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(dans|en)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|une?|(?:\\\\s*quelques)?|demi(?:\\\\s*|-?)?)\\\\s*' + '(secondes?|min(?:ute)?s?|heures?|jours?|semaines?|mois|années?)\\\\s*' + '(?=\\\\W|$)', 'i');\n var STRICT_PATTERN = new RegExp('(\\\\W|^)' + '(dans|en)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|un?)\\\\s*' + '(secondes?|minutes?|heures?|jours?)\\\\s*' + '(?=\\\\W|$)', 'i');\n\n exports.Parser = function FRDeadlineFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = match[3];\n\n if (util.INTEGER_WORDS[num] !== undefined) {\n num = util.INTEGER_WORDS[num];\n } else if (num === 'un' || num === 'une') {\n num = 1;\n } else if (num.match(/quelques?/i)) {\n num = 3;\n } else if (num.match(/demi-?/i)) {\n num = 0.5;\n } else {\n num = parseInt(num);\n }\n\n var date = dayjs(ref);\n\n if (match[4].match(/jour|semaine|mois|année/i)) {\n if (match[4].match(/jour/)) {\n date = date.add(num, 'd');\n } else if (match[4].match(/semaine/i)) {\n date = date.add(num * 7, 'd');\n } else if (match[4].match(/mois/i)) {\n date = date.add(num, 'month');\n } else if (match[4].match(/année/i)) {\n date = date.add(num, 'year');\n }\n\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n }\n\n if (match[4].match(/heure/i)) {\n date = date.add(num, 'hour');\n } else if (match[4].match(/min/i)) {\n date = date.add(num, 'minutes');\n } else if (match[4].match(/secondes/i)) {\n date = date.add(num, 'second');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags['FRDeadlineFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 48 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(9);\n\n var DAYS_OFFSET = util.WEEKDAY_OFFSET;\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(Dimanche|Lundi|Mardi|mercredi|Jeudi|Vendredi|Samedi|Dim|Lun|Mar|Mer|Jeu|Ven|Sam)\\\\s*,?\\\\s*)?' + '([0-9]{1,2}|1er)' + '(?:\\\\s*(?:au|\\\\-|\\\\–|jusqu\\'au?|\\\\s)\\\\s*([0-9]{1,2})(?:er)?)?\\\\s*(?:de)?\\\\s*' + '(Jan(?:vier|\\\\.)?|F[ée]v(?:rier|\\\\.)?|Mars|Avr(?:il|\\\\.)?|Mai|Juin|Juil(?:let|\\\\.)?|Ao[uû]t|Sept(?:embre|\\\\.)?|Oct(?:obre|\\\\.)?|Nov(?:embre|\\\\.)?|d[ée]c(?:embre|\\\\.)?)' + '(?:\\\\s*(\\\\s*[0-9]{1,4}(?![^\\\\s]\\\\d))(?:\\\\s*(AC|[ap]\\\\.?\\\\s*c(?:h(?:r)?)?\\\\.?\\\\s*n\\\\.?))?)?' + '(?=\\\\W|$)', 'i');\n var WEEKDAY_GROUP = 2;\n var DATE_GROUP = 3;\n var DATE_TO_GROUP = 4;\n var MONTH_NAME_GROUP = 5;\n var YEAR_GROUP = 6;\n var YEAR_BE_GROUP = 7;\n\n exports.Parser = function FRMonthNameLittleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_GROUP];\n day = parseInt(day);\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP]) {\n if (/a/i.test(match[YEAR_BE_GROUP])) {\n // Ante Christe natum\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as '12 - 13 janvier 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n result.end = result.start.clone();\n result.end.assign('day', parseInt(match[DATE_TO_GROUP]));\n }\n\n result.tags['FRMonthNameLittleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 49 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\r\n Date format with slash \"/\" (also \"-\" and \".\") between numbers\r\n - Martes 3/11/2015\r\n - 3/11/2015\r\n - 3/11\r\n */\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '((?:dimanche|dim|lundi|lun|mardi|mar|mercredi|mer|jeudi|jeu|vendredi|ven|samedi|sam|le))' + '\\\\s*\\\\,?\\\\s*' + ')?' + '([0-3]{0,1}[0-9]{1})[\\\\/\\\\.\\\\-]([0-3]{0,1}[0-9]{1})' + '(?:' + '[\\\\/\\\\.\\\\-]' + '([0-9]{4}\\s*\\,?\\s*|[0-9]{2}\\s*\\,?\\s*)' + ')?' + '(\\\\W|$)', 'i');\n var DAYS_OFFSET = {\n 'dimanche': 0,\n 'dim': 0,\n 'lundi': 1,\n 'lun': 1,\n 'mardi': 2,\n 'mar': 2,\n 'mercredi': 3,\n 'mer': 3,\n 'jeudi': 4,\n 'jeu': 4,\n 'vendredi': 5,\n 'ven': 5,\n 'samedi': 6,\n 'sam': 6\n };\n var OPENNING_GROUP = 1;\n var ENDING_GROUP = 6; // In French we use day/month/year\n\n var WEEKDAY_GROUP = 2;\n var DAY_GROUP = 3;\n var MONTH_GROUP = 4;\n var YEAR_GROUP = 5;\n\n exports.Parser = function FRSlashDateFormatParser(argument) {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') {\n // Long skip, if there is some overlapping like:\n // XX[/YY/ZZ]\n // [XX/YY/]ZZ\n match.index += match[0].length;\n return;\n }\n\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length);\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n if (text.match(/^\\d\\.\\d$/)) return;\n if (text.match(/^\\d\\.\\d{1,2}\\.\\d{1,2}$/)) return; // MM/dd -> OK\n // MM.dd -> NG\n\n if (!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return;\n var date = null;\n var month = match[MONTH_GROUP];\n var day = match[DAY_GROUP];\n day = parseInt(day);\n month = parseInt(month);\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (month < 1 || month > 12) {\n if (month > 12) {\n // dd/mm/yyyy date format if day looks like a month, and month looks like a day.\n if (day >= 1 && day <= 12 && month >= 13 && month <= 31) {\n // unambiguous\n var tday = month;\n month = day;\n day = tday;\n } else {\n // both month and day are <= 12\n return null;\n }\n }\n }\n\n if (day < 1 || day > 31) return null;\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Day of week\n\n\n if (match[WEEKDAY_GROUP]) {\n result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]);\n }\n\n result.tags['FRSlashDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 50 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = /(\\W|^)il y a\\s*([0-9]+|une?)\\s*(minutes?|heures?|semaines?|jours?|mois|années?|ans?)(?=(?:\\W|$))/i;\n\n exports.Parser = function FRTimeAgoFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n result.tags['FRTimeAgoFormatParser'] = true;\n var num = parseInt(match[2]);\n\n if (isNaN(num)) {\n if (match[2].match(/demi/)) {\n num = 0.5;\n } else {\n num = 1;\n }\n }\n\n var date = dayjs(ref);\n\n if (match[3].match(/heure/) || match[3].match(/minute/)) {\n if (match[3].match(/heure/)) {\n date = date.add(-num, 'hour');\n } else if (match[3].match(/minute/)) {\n date = date.add(-num, 'minute');\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n return result;\n }\n\n if (match[3].match(/semaine/)) {\n date = date.add(-num, 'week');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.imply('weekday', date.day());\n return result;\n }\n\n if (match[3].match(/jour/)) {\n date = date.add(-num, 'd');\n }\n\n if (match[3].match(/mois/)) {\n date = date.add(-num, 'month');\n }\n\n if (match[3].match(/années?|ans?/)) {\n date = date.add(-num, 'year');\n }\n\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n return result;\n };\n };\n /***/\n\n },\n /* 51 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var FIRST_REG_PATTERN = new RegExp(\"(^|\\\\s|T)\" + \"(?:(?:[àa])\\\\s*)?\" + \"(\\\\d{1,2}(?:h)?|midi|minuit)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:|h)(\\\\d{1,2})(?:m)?\" + \"(?:\" + \"(?:\\\\:|\\\\:|m)(\\\\d{0,2})(?:s)?\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var SECOND_REG_PATTERN = new RegExp(\"^\\\\s*\" + \"(\\\\-|\\\\–|\\\\~|\\\\〜|[àa]|\\\\?)\\\\s*\" + \"(\\\\d{1,2}(?:h)?)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:|h)(\\\\d{1,2})(?:m)?\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:|m)(\\\\d{1,2})(?:s)?\" + \")?\" + \")?\" + \"(?:\\\\s*(A\\\\.M\\\\.|P\\\\.M\\\\.|AM?|PM?))?\" + \"(?=\\\\W|$)\", 'i');\n var HOUR_GROUP = 2;\n var MINUTE_GROUP = 3;\n var SECOND_GROUP = 4;\n var AM_PM_HOUR_GROUP = 5;\n\n exports.Parser = function FRTimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlaped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index + match[1].length;\n result.text = match[0].substring(match[1].length);\n result.tags['FRTimeExpressionParser'] = true;\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.start.assign('second', second);\n } // ----- Hours\n\n\n if (match[HOUR_GROUP].toLowerCase() == \"midi\") {\n meridiem = 1;\n hour = 12;\n } else if (match[HOUR_GROUP].toLowerCase() == \"minuit\") {\n meridiem = 0;\n hour = 0;\n } else {\n hour = parseInt(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n // Not accept number only result\n if (result.text.match(/^\\d+$/)) {\n return null;\n }\n\n return result;\n } // Pattern \"YY.YY -XXXX\" is more like timezone offset\n\n\n if (match[0].match(/^\\s*(\\+|\\-)\\s*\\d{3,4}$/)) {\n return result;\n }\n\n if (result.end == null) {\n result.end = new ParsedComponents(null, result.start.date());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[2]); // ----- Minute\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n if (minute >= 60) return result;\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n\n if (hour == 12) {\n hour = 0;\n\n if (!result.end.isCertain('day')) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n }\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n } else {\n var startAtPM = result.start.isCertain('meridiem') && result.start.get('meridiem') == 1;\n\n if (startAtPM && result.start.get('hour') > hour) {\n // 10pm - 1 (am)\n result.end.imply('meridiem', 0);\n } else if (hour > 12) {\n result.end.imply('meridiem', 1);\n }\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 52 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var updateParsedComponent = __webpack_require__(5).updateParsedComponent;\n\n var DAYS_OFFSET = {\n 'dimanche': 0,\n 'dim': 0,\n 'lundi': 1,\n 'lun': 1,\n 'mardi': 2,\n 'mar': 2,\n 'mercredi': 3,\n 'mer': 3,\n 'jeudi': 4,\n 'jeu': 4,\n 'vendredi': 5,\n 'ven': 5,\n 'samedi': 6,\n 'sam': 6\n };\n var PATTERN = new RegExp('(\\\\s|^)' + '(?:(?:\\\\,|\\\\(|\\\\()\\\\s*)?' + '(?:(ce)\\\\s*)?' + '(' + Object.keys(DAYS_OFFSET).join('|') + ')' + '(?:\\\\s*(?:\\\\,|\\\\)|\\\\)))?' + '(?:\\\\s*(dernier|prochain)\\\\s*)?' + '(?=\\\\W|$)', 'i');\n var PREFIX_GROUP = 2;\n var WEEKDAY_GROUP = 3;\n var POSTFIX_GROUP = 4;\n\n exports.Parser = function FRWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();\n var offset = DAYS_OFFSET[dayOfWeek];\n if (offset === undefined) return null;\n var modifier = null;\n var prefix = match[PREFIX_GROUP];\n var postfix = match[POSTFIX_GROUP];\n\n if (prefix || postfix) {\n var norm = prefix || postfix;\n norm = norm.toLowerCase();\n\n if (norm == 'dernier') {\n modifier = 'last';\n } else if (norm == 'prochain') {\n modifier = 'next';\n } else if (norm == 'ce') {\n modifier = 'this';\n }\n }\n\n updateParsedComponent(result, ref, offset, modifier);\n result.tags['FRWeekdayParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 53 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var quarterOfYear = __webpack_require__(54);\n\n var dayjs = __webpack_require__(2);\n\n dayjs.extend(quarterOfYear);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(9);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:les?|la|l\\'|du|des?)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|\\\\d+)?\\\\s*' + '(prochaine?s?|derni[eè]re?s?|pass[ée]e?s?|pr[ée]c[ée]dents?|suivante?s?)?\\\\s*' + '(secondes?|min(?:ute)?s?|heures?|jours?|semaines?|mois|trimestres?|années?)\\\\s*' + '(prochaine?s?|derni[eè]re?s?|pass[ée]e?s?|pr[ée]c[ée]dents?|suivante?s?)?' + '(?=\\\\W|$)', 'i');\n var MULTIPLIER_GROUP = 2;\n var MODIFIER_1_GROUP = 3;\n var RELATIVE_WORD_GROUP = 4;\n var MODIFIER_2_GROUP = 5;\n\n exports.Parser = function FRRelativeDateFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length); // Multiplier\n\n var multiplier = match[MULTIPLIER_GROUP] === undefined ? '1' : match[MULTIPLIER_GROUP];\n\n if (util.INTEGER_WORDS[multiplier] !== undefined) {\n multiplier = util.INTEGER_WORDS[multiplier];\n } else {\n multiplier = parseInt(multiplier);\n } // Modifier\n\n\n var modifier = match[MODIFIER_1_GROUP] === undefined ? match[MODIFIER_2_GROUP] === undefined ? '' : match[MODIFIER_2_GROUP].toLowerCase() : match[MODIFIER_1_GROUP].toLowerCase();\n\n if (!modifier) {\n // At least one modifier is mandatory to match this parser\n return;\n }\n\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n result.tags['FRRelativeDateFormatParser'] = true;\n var modifierFactor;\n\n switch (true) {\n case /prochaine?s?/.test(modifier):\n case /suivants?/.test(modifier):\n modifierFactor = 1;\n break;\n\n case /derni[eè]re?s?/.test(modifier):\n case /pass[ée]e?s?/.test(modifier):\n case /pr[ée]c[ée]dents?/.test(modifier):\n modifierFactor = -1;\n break;\n }\n\n var total = multiplier * modifierFactor;\n var dateFrom = dayjs(ref);\n var dateTo = dayjs(ref);\n var relative = match[RELATIVE_WORD_GROUP];\n var startOf;\n\n switch (true) {\n case /secondes?/.test(relative):\n dateFrom = dateFrom.add(total, 's');\n dateTo = dateTo.add(modifierFactor, 's');\n startOf = 'second';\n break;\n\n case /min(?:ute)?s?/.test(relative):\n dateFrom = dateFrom.add(total, 'm');\n dateTo = dateTo.add(modifierFactor, 'm');\n startOf = 'minute';\n break;\n\n case /heures?/.test(relative):\n dateFrom = dateFrom.add(total, 'h');\n dateTo = dateTo.add(modifierFactor, 'h');\n startOf = 'hour';\n break;\n\n case /jours?/.test(relative):\n dateFrom = dateFrom.add(total, 'd');\n dateTo = dateTo.add(modifierFactor, 'd');\n startOf = 'day';\n break;\n\n case /semaines?/.test(relative):\n dateFrom = dateFrom.add(total, 'w');\n dateTo = dateTo.add(modifierFactor, 'w');\n startOf = 'week';\n break;\n\n case /mois?/.test(relative):\n dateFrom = dateFrom.add(total, 'M');\n dateTo = dateTo.add(modifierFactor, 'M');\n startOf = 'month';\n break;\n\n case /trimestres?/.test(relative):\n dateFrom = dateFrom.add(total, 'Q');\n dateTo = dateTo.add(modifierFactor, 'Q');\n startOf = 'quarter';\n break;\n\n case /années?/.test(relative):\n dateFrom = dateFrom.add(total, 'y');\n dateTo = dateTo.add(modifierFactor, 'y');\n startOf = 'year';\n break;\n } // if we go forward, switch the start and end dates\n\n\n if (modifierFactor > 0) {\n var dateTmp = dateFrom;\n dateFrom = dateTo;\n dateTo = dateTmp;\n } // Get start and end of dates\n\n\n dateFrom = dateFrom.startOf(startOf);\n dateTo = dateTo.endOf(startOf);\n\n if (startOf == 'week') {\n // Weekday in FR start on Sat?\n dateFrom = dateFrom.add(1, 'd');\n dateTo = dateTo.add(1, 'd');\n } // Assign results\n\n\n result.start.assign('year', dateFrom.year());\n result.start.assign('month', dateFrom.month() + 1);\n result.start.assign('day', dateFrom.date());\n result.start.assign('minute', dateFrom.minute());\n result.start.assign('second', dateFrom.second());\n result.start.assign('hour', dateFrom.hour());\n result.start.assign('millisecond', dateFrom.millisecond());\n result.end = result.start.clone();\n result.end.assign('year', dateTo.year());\n result.end.assign('month', dateTo.month() + 1);\n result.end.assign('day', dateTo.date());\n result.end.assign('minute', dateTo.minute());\n result.end.assign('second', dateTo.second());\n result.end.assign('hour', dateTo.hour());\n result.end.assign('millisecond', dateTo.millisecond());\n return result;\n };\n };\n /***/\n\n },\n /* 54 */\n\n /***/\n function (module, exports, __webpack_require__) {\n !function (t, n) {\n true ? module.exports = n() : undefined;\n }(this, function () {\n \"use strict\";\n\n var t = \"month\",\n n = \"quarter\";\n return function (r, i) {\n var e = i.prototype;\n\n e.quarter = function (t) {\n return this.$utils().u(t) ? Math.ceil((this.month() + 1) / 3) : this.month(this.month() % 3 + 3 * (t - 1));\n };\n\n var u = e.add;\n\n e.add = function (r, i) {\n return r = Number(r), this.$utils().p(i) === n ? this.add(3 * r, t) : u.bind(this)(r, i);\n };\n\n var s = e.startOf;\n\n e.startOf = function (r, i) {\n var e = this.$utils(),\n u = !!e.u(i) || i;\n\n if (e.p(r) === n) {\n var a = this.quarter() - 1;\n return u ? this.month(3 * a).startOf(t).startOf(\"day\") : this.month(3 * a + 2).endOf(t).endOf(\"day\");\n }\n\n return s.bind(this)(r, i);\n };\n };\n });\n /***/\n },\n /* 55 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(7);\n\n var PATTERN = new RegExp('(\\\\d{2,4}|[' + Object.keys(util.NUMBER).join('') + ']{2,4})?' + '(?:\\\\s*)' + '(?:年)?' + '(?:[\\\\s|,|,]*)' + '(\\\\d{1,2}|[' + Object.keys(util.NUMBER).join('') + ']{1,2})' + '(?:\\\\s*)' + '(?:月)' + '(?:\\\\s*)' + '(\\\\d{1,2}|[' + Object.keys(util.NUMBER).join('') + ']{1,2})?' + '(?:\\\\s*)' + '(?:日|號)?');\n var YEAR_GROUP = 1;\n var MONTH_GROUP = 2;\n var DAY_GROUP = 3;\n\n exports.Parser = function ZHHantDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var startMoment = dayjs(ref);\n var result = new ParsedResult({\n text: match[0],\n index: match.index,\n ref: ref\n }); //Month\n\n var month = parseInt(match[MONTH_GROUP]);\n if (isNaN(month)) month = util.zhStringToNumber(match[MONTH_GROUP]);\n result.start.assign('month', month); //Day\n\n if (match[DAY_GROUP]) {\n var day = parseInt(match[DAY_GROUP]);\n if (isNaN(day)) day = util.zhStringToNumber(match[DAY_GROUP]);\n result.start.assign('day', day);\n } else {\n result.start.imply('day', startMoment.date());\n } //Year\n\n\n if (match[YEAR_GROUP]) {\n var year = parseInt(match[YEAR_GROUP]);\n if (isNaN(year)) year = util.zhStringToYear(match[YEAR_GROUP]);\n result.start.assign('year', year);\n } else {\n result.start.imply('year', startMoment.year());\n }\n\n result.tags.ZHHantDateParser = true;\n return result;\n };\n };\n /***/\n\n },\n /* 56 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var updateParsedComponent = __webpack_require__(5).updateParsedComponent;\n\n var util = __webpack_require__(7);\n\n var PATTERN = new RegExp('(上|今|下|這|呢)?' + '(?:個)?' + '(?:星期|禮拜)' + '(' + Object.keys(util.WEEKDAY_OFFSET).join('|') + ')');\n var PREFIX_GROUP = 1;\n var WEEKDAY_GROUP = 2;\n\n exports.Parser = function ZHHantWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index;\n text = match[0];\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP];\n var offset = util.WEEKDAY_OFFSET[dayOfWeek];\n if (offset === undefined) return null;\n var modifier = null;\n var prefix = match[PREFIX_GROUP];\n\n if (prefix == '上') {\n modifier = 'last';\n } else if (prefix == '下') {\n modifier = 'next';\n } else if (prefix == '今' || prefix == '這' || prefix == '呢') {\n modifier = 'this';\n }\n\n updateParsedComponent(result, ref, offset, modifier);\n result.tags['ZHHantWeekdayParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 57 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var util = __webpack_require__(7);\n\n var patternString1 = '(?:由|從|自)?' + '(?:' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|' + '(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)' + '(?:[\\\\s,,]*)' + '(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?' + ')?' + '(?:[\\\\s,,]*)' + '(?:(\\\\d+|[' + Object.keys(util.NUMBER).join('') + ']+)(?:\\\\s*)(?:點|時|:|:)' + '(?:\\\\s*)' + '(\\\\d+|半|正|整|[' + Object.keys(util.NUMBER).join('') + ']+)?(?:\\\\s*)(?:分|:|:)?' + '(?:\\\\s*)' + '(\\\\d+|[' + Object.keys(util.NUMBER).join('') + ']+)?(?:\\\\s*)(?:秒)?)' + '(?:\\\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?';\n var patternString2 = '(?:\\\\s*(?:到|至|\\\\-|\\\\–|\\\\~|\\\\〜)\\\\s*)' + '(?:' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|' + '(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)' + '(?:[\\\\s,,]*)' + '(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?' + ')?' + '(?:[\\\\s,,]*)' + '(?:(\\\\d+|[' + Object.keys(util.NUMBER).join('') + ']+)(?:\\\\s*)(?:點|時|:|:)' + '(?:\\\\s*)' + '(\\\\d+|半|正|整|[' + Object.keys(util.NUMBER).join('') + ']+)?(?:\\\\s*)(?:分|:|:)?' + '(?:\\\\s*)' + '(\\\\d+|[' + Object.keys(util.NUMBER).join('') + ']+)?(?:\\\\s*)(?:秒)?)' + '(?:\\\\s*(A\\.M\\.|P\\.M\\.|AM?|PM?))?';\n var FIRST_REG_PATTERN = new RegExp(patternString1, 'i');\n var SECOND_REG_PATTERN = new RegExp(patternString2, 'i');\n var DAY_GROUP_1 = 1;\n var ZH_AM_PM_HOUR_GROUP_1 = 2;\n var ZH_AM_PM_HOUR_GROUP_2 = 3;\n var DAY_GROUP_3 = 4;\n var ZH_AM_PM_HOUR_GROUP_3 = 5;\n var HOUR_GROUP = 6;\n var MINUTE_GROUP = 7;\n var SECOND_GROUP = 8;\n var AM_PM_HOUR_GROUP = 9;\n\n exports.Parser = function ZHHantTimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlaped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index;\n result.text = match[0];\n result.tags.ZHTimeExpressionParser = true;\n var startMoment = refMoment.clone(); // ----- Day\n\n if (match[DAY_GROUP_1]) {\n var day1 = match[DAY_GROUP_1];\n\n if (day1 == '明' || day1 == '聽') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment.add(1, 'day');\n }\n } else if (day1 == '昨' || day1 == '尋' || day1 == '琴') {\n startMoment.add(-1, 'day');\n } else if (day1 == \"前\") {\n startMoment.add(-2, 'day');\n } else if (day1 == \"大前\") {\n startMoment.add(-3, 'day');\n } else if (day1 == \"後\") {\n startMoment.add(2, 'day');\n } else if (day1 == \"大後\") {\n startMoment.add(3, 'day');\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n } else if (match[DAY_GROUP_3]) {\n var day3 = match[DAY_GROUP_3];\n\n if (day3 == '明' || day3 == '聽') {\n startMoment.add(1, 'day');\n } else if (day3 == '昨' || day3 == '尋' || day3 == '琴') {\n startMoment.add(-1, 'day');\n } else if (day3 == \"前\") {\n startMoment.add(-2, 'day');\n } else if (day3 == \"大前\") {\n startMoment.add(-3, 'day');\n } else if (day3 == \"後\") {\n startMoment.add(2, 'day');\n } else if (day3 == \"大後\") {\n startMoment.add(3, 'day');\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n } else {\n result.start.imply('day', startMoment.date());\n result.start.imply('month', startMoment.month() + 1);\n result.start.imply('year', startMoment.year());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP]) {\n var second = parseInt(match[SECOND_GROUP]);\n\n if (isNaN(second)) {\n second = util.zhStringToNumber(match[SECOND_GROUP]);\n }\n\n if (second >= 60) return null;\n result.start.assign('second', second);\n }\n\n hour = parseInt(match[HOUR_GROUP]);\n\n if (isNaN(hour)) {\n hour = util.zhStringToNumber(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP]) {\n if (match[MINUTE_GROUP] == '半') {\n minute = 30;\n } else if (match[MINUTE_GROUP] == '正' || match[MINUTE_GROUP] == '整') {\n minute = 0;\n } else {\n minute = parseInt(match[MINUTE_GROUP]);\n\n if (isNaN(minute)) {\n minute = util.zhStringToNumber(match[MINUTE_GROUP]);\n }\n }\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP]) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_1]) {\n var zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1];\n var zhAMPM1 = zhAMPMString1[0];\n\n if (zhAMPM1 == '朝' || zhAMPM1 == '早') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM1 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_2]) {\n var zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2];\n var zhAMPM2 = zhAMPMString2[0];\n\n if (zhAMPM2 == '上' || zhAMPM2 == '朝' || zhAMPM2 == '早' || zhAMPM2 == '凌') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM2 == '下' || zhAMPM2 == '晏' || zhAMPM2 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_3]) {\n var zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3];\n var zhAMPM3 = zhAMPMString3[0];\n\n if (zhAMPM3 == '上' || zhAMPM3 == '朝' || zhAMPM3 == '早' || zhAMPM3 == '凌') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM3 == '下' || zhAMPM3 == '晏' || zhAMPM3 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } else {\n if (hour < 12) {\n result.start.imply('meridiem', 0);\n } else {\n result.start.imply('meridiem', 1);\n }\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n // Not accept number only result\n if (result.text.match(/^\\d+$/)) {\n return null;\n }\n\n return result;\n }\n\n var endMoment = startMoment.clone();\n result.end = new ParsedComponents(null, null); // ----- Day\n\n if (match[DAY_GROUP_1]) {\n var day1 = match[DAY_GROUP_1];\n\n if (day1 == '明' || day1 == '聽') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n endMoment.add(1, 'day');\n }\n } else if (day1 == '昨' || day1 == '尋' || day1 == '琴') {\n endMoment.add(-1, 'day');\n } else if (day1 == \"前\") {\n endMoment.add(-2, 'day');\n } else if (day1 == \"大前\") {\n endMoment.add(-3, 'day');\n } else if (day1 == \"後\") {\n endMoment.add(2, 'day');\n } else if (day1 == \"大後\") {\n endMoment.add(3, 'day');\n }\n\n result.end.assign('day', endMoment.date());\n result.end.assign('month', endMoment.month() + 1);\n result.end.assign('year', endMoment.year());\n } else if (match[DAY_GROUP_3]) {\n var day3 = match[DAY_GROUP_3];\n\n if (day3 == '明' || day3 == '聽') {\n endMoment.add(1, 'day');\n } else if (day3 == '昨' || day3 == '尋' || day3 == '琴') {\n endMoment.add(-1, 'day');\n } else if (day3 == \"前\") {\n endMoment.add(-2, 'day');\n } else if (day3 == \"大前\") {\n endMoment.add(-3, 'day');\n } else if (day3 == \"後\") {\n endMoment.add(2, 'day');\n } else if (day3 == \"大後\") {\n endMoment.add(3, 'day');\n }\n\n result.end.assign('day', endMoment.date());\n result.end.assign('month', endMoment.month() + 1);\n result.end.assign('year', endMoment.year());\n } else {\n result.end.imply('day', endMoment.date());\n result.end.imply('month', endMoment.month() + 1);\n result.end.imply('year', endMoment.year());\n }\n\n hour = 0;\n minute = 0;\n meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP]) {\n var second = parseInt(match[SECOND_GROUP]);\n\n if (isNaN(second)) {\n second = util.zhStringToNumber(match[SECOND_GROUP]);\n }\n\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[HOUR_GROUP]);\n\n if (isNaN(hour)) {\n hour = util.zhStringToNumber(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP]) {\n if (match[MINUTE_GROUP] == '半') {\n minute = 30;\n } else if (match[MINUTE_GROUP] == '正' || match[MINUTE_GROUP] == '整') {\n minute = 0;\n } else {\n minute = parseInt(match[MINUTE_GROUP]);\n\n if (isNaN(minute)) {\n minute = util.zhStringToNumber(match[MINUTE_GROUP]);\n }\n }\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM\n\n\n if (match[AM_PM_HOUR_GROUP]) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm == \"a\") {\n meridiem = 0;\n if (hour == 12) hour = 0;\n }\n\n if (ampm == \"p\") {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_1]) {\n var zhAMPMString1 = match[ZH_AM_PM_HOUR_GROUP_1];\n var zhAMPM1 = zhAMPMString1[0];\n\n if (zhAMPM1 == '朝' || zhAMPM1 == '早') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM1 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_2]) {\n var zhAMPMString2 = match[ZH_AM_PM_HOUR_GROUP_2];\n var zhAMPM2 = zhAMPMString2[0];\n\n if (zhAMPM2 == '上' || zhAMPM2 == '朝' || zhAMPM2 == '早' || zhAMPM2 == '凌') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM2 == '下' || zhAMPM2 == '晏' || zhAMPM2 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n } else if (match[ZH_AM_PM_HOUR_GROUP_3]) {\n var zhAMPMString3 = match[ZH_AM_PM_HOUR_GROUP_3];\n var zhAMPM3 = zhAMPMString3[0];\n\n if (zhAMPM3 == '上' || zhAMPM3 == '朝' || zhAMPM3 == '早' || zhAMPM3 == '凌') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else if (zhAMPM3 == '下' || zhAMPM3 == '晏' || zhAMPM3 == '晚') {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n } else {\n var startAtPM = result.start.isCertain('meridiem') && result.start.get('meridiem') == 1;\n\n if (startAtPM && result.start.get('hour') > hour) {\n // 10pm - 1 (am)\n result.end.imply('meridiem', 0);\n } else if (hour > 12) {\n result.end.imply('meridiem', 1);\n }\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 58 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(而家|立(?:刻|即)|即刻)|' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(早|朝|晚)|' + '(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨))|' + '(今|明|前|大前|後|大後|聽|昨|尋|琴)(?:日|天)' + '(?:[\\\\s|,|,]*)' + '(?:(上(?:午|晝)|朝(?:早)|早(?:上)|下(?:午|晝)|晏(?:晝)|晚(?:上)|夜(?:晚)?|中(?:午)|凌(?:晨)))?', 'i');\n var NOW_GROUP = 1;\n var DAY_GROUP_1 = 2;\n var TIME_GROUP_1 = 3;\n var TIME_GROUP_2 = 4;\n var DAY_GROUP_3 = 5;\n var TIME_GROUP_3 = 6;\n\n exports.Parser = function ZHHantCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n text = match[0];\n var index = match.index;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var startMoment = refMoment;\n\n if (match[NOW_GROUP]) {\n result.start.imply('hour', refMoment.hour());\n result.start.imply('minute', refMoment.minute());\n result.start.imply('second', refMoment.second());\n result.start.imply('millisecond', refMoment.millisecond());\n } else if (match[DAY_GROUP_1]) {\n var day1 = match[DAY_GROUP_1];\n var time1 = match[TIME_GROUP_1];\n\n if (day1 == '明' || day1 == '聽') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (day1 == '昨' || day1 == '尋' || day1 == '琴') {\n startMoment = startMoment.add(-1, 'day');\n } else if (day1 == \"前\") {\n startMoment = startMoment.add(-2, 'day');\n } else if (day1 == \"大前\") {\n startMoment = startMoment.add(-3, 'day');\n } else if (day1 == \"後\") {\n startMoment = startMoment.add(2, 'day');\n } else if (day1 == \"大後\") {\n startMoment = startMoment.add(3, 'day');\n }\n\n if (time1 == '早' || time1 == '朝') {\n result.start.imply('hour', 6);\n } else if (time1 == '晚') {\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n }\n } else if (match[TIME_GROUP_2]) {\n var timeString2 = match[TIME_GROUP_2];\n var time2 = timeString2[0];\n\n if (time2 == '早' || time2 == '朝' || time2 == '上') {\n result.start.imply('hour', 6);\n } else if (time2 == '下' || time2 == '晏') {\n result.start.imply('hour', 15);\n result.start.imply('meridiem', 1);\n } else if (time2 == '中') {\n result.start.imply('hour', 12);\n result.start.imply('meridiem', 1);\n } else if (time2 == '夜' || time2 == '晚') {\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (time2 == '凌') {\n result.start.imply('hour', 0);\n }\n } else if (match[DAY_GROUP_3]) {\n var day3 = match[DAY_GROUP_3];\n\n if (day3 == '明' || day3 == '聽') {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (day3 == '昨' || day3 == '尋' || day3 == '琴') {\n startMoment = startMoment.add(-1, 'day');\n } else if (day3 == \"前\") {\n startMoment = startMoment.add(-2, 'day');\n } else if (day3 == \"大前\") {\n startMoment = startMoment.add(-3, 'day');\n } else if (day3 == \"後\") {\n startMoment = startMoment.add(2, 'day');\n } else if (day3 == \"大後\") {\n startMoment = startMoment.add(3, 'day');\n }\n\n var timeString3 = match[TIME_GROUP_3];\n\n if (timeString3) {\n var time3 = timeString3[0];\n\n if (time3 == '早' || time3 == '朝' || time3 == '上') {\n result.start.imply('hour', 6);\n } else if (time3 == '下' || time3 == '晏') {\n result.start.imply('hour', 15);\n result.start.imply('meridiem', 1);\n } else if (time3 == '中') {\n result.start.imply('hour', 12);\n result.start.imply('meridiem', 1);\n } else if (time3 == '夜' || time3 == '晚') {\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (time3 == '凌') {\n result.start.imply('hour', 0);\n }\n }\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags.ZHHantCasualDateParser = true;\n return result;\n };\n };\n /***/\n\n },\n /* 59 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(7);\n\n var PATTERN = new RegExp('(\\\\d+|[' + Object.keys(util.NUMBER).join('') + ']+|半|幾)(?:\\\\s*)' + '(?:個)?' + '(秒(?:鐘)?|分鐘|小時|鐘|日|天|星期|禮拜|月|年)' + '(?:(?:之|過)?後|(?:之)?內)', 'i');\n var NUMBER_GROUP = 1;\n var UNIT_GROUP = 2;\n\n exports.Parser = function ZHHantCasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index;\n text = match[0];\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var number = parseInt(match[NUMBER_GROUP]);\n\n if (isNaN(number)) {\n number = util.zhStringToNumber(match[NUMBER_GROUP]);\n }\n\n if (isNaN(number)) {\n var string = match[NUMBER_GROUP];\n\n if (string === '幾') {\n number = 3;\n } else if (string === '半') {\n number = 0.5;\n } else {\n //just in case\n return null;\n }\n }\n\n var date = dayjs(ref);\n var unit = match[UNIT_GROUP];\n var unitAbbr = unit[0];\n\n if (unitAbbr.match(/[日天星禮月年]/)) {\n if (unitAbbr == '日' || unitAbbr == '天') {\n date = date.add(number, 'd');\n } else if (unitAbbr == '星' || unitAbbr == '禮') {\n date = date.add(number * 7, 'd');\n } else if (unitAbbr == '月') {\n date = date.add(number, 'month');\n } else if (unitAbbr == '年') {\n date = date.add(number, 'year');\n }\n\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n }\n\n if (unitAbbr == '秒') {\n date = date.add(number, 'second');\n } else if (unitAbbr == '分') {\n date = date.add(number, 'minute');\n } else if (unitAbbr == '小' || unitAbbr == '鐘') {\n date = date.add(number, 'hour');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags.ZHHantDeadlineFormatParser = true;\n return result;\n };\n };\n /***/\n\n },\n /* 60 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n \n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(8);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(in|nach)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|einigen|eine[rm]\\\\s*halben|eine[rm])\\\\s*' + '(sekunden?|min(?:ute)?n?|stunden?|tag(?:en)?|wochen?|monat(?:en)?|jahr(?:en)?)\\\\s*' + '(?=\\\\W|$)', 'i');\n var STRICT_PATTERN = new RegExp('(\\\\W|^)' + '(in|nach)\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|eine(?:r|m)?)\\\\s*' + '(sekunden?|minuten?|stunden?|tag(?:en)?)\\\\s*' + '(?=\\\\W|$)', 'i');\n\n exports.Parser = function DEDeadlineFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = match[3].toLowerCase();\n\n if (util.INTEGER_WORDS[num] !== undefined) {\n num = util.INTEGER_WORDS[num];\n } else if (num === 'einer' || num === 'einem') {\n num = 1;\n } else if (num === 'einigen') {\n num = 3;\n } else if (/halben/.test(num)) {\n num = 0.5;\n } else {\n num = parseInt(num);\n }\n\n var date = dayjs(ref);\n\n if (/tag|woche|monat|jahr/i.test(match[4])) {\n if (/tag/i.test(match[4])) {\n date = date.add(num, 'd');\n } else if (/woche/i.test(match[4])) {\n date = date.add(num * 7, 'd');\n } else if (/monat/i.test(match[4])) {\n date = date.add(num, 'month');\n } else if (/jahr/i.test(match[4])) {\n date = date.add(num, 'year');\n }\n\n result.start.assign('year', date.year());\n result.start.assign('month', date.month() + 1);\n result.start.assign('day', date.date());\n return result;\n }\n\n if (/stunde/i.test(match[4])) {\n date = date.add(num, 'hour');\n } else if (/min/i.test(match[4])) {\n date = date.add(num, 'minute');\n } else if (/sekunde/i.test(match[4])) {\n date = date.add(num, 'second');\n }\n\n result.start.imply('year', date.year());\n result.start.imply('month', date.month() + 1);\n result.start.imply('day', date.date());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags['DEDeadlineFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 61 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(8);\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:am\\\\s*?)?' + '(?:(Sonntag|Montag|Dienstag|Mittwoch|Donnerstag|Freitag|Samstag|So|Mo|Di|Mi|Do|Fr|Sa)\\\\s*,?\\\\s*)?' + '(?:den\\\\s*)?' + '([0-9]{1,2})\\\\.' + '(?:\\\\s*(?:bis(?:\\\\s*(?:am|zum))?|\\\\-|\\\\–|\\\\s)\\\\s*([0-9]{1,2})\\\\.)?\\\\s*' + '(Jan(?:uar|\\\\.)?|Feb(?:ruar|\\\\.)?|Mär(?:z|\\\\.)?|Maerz|Mrz\\\\.?|Apr(?:il|\\\\.)?|Mai|Jun(?:i|\\\\.)?|Jul(?:i|\\\\.)?|Aug(?:ust|\\\\.)?|Sep(?:t|t\\\\.|tember|\\\\.)?|Okt(?:ober|\\\\.)?|Nov(?:ember|\\\\.)?|Dez(?:ember|\\\\.)?)' + '(?:' + ',?\\\\s*([0-9]{1,4}(?![^\\\\s]\\\\d))' + '(\\\\s*[vn]\\\\.?\\\\s*C(?:hr)?\\\\.?)?' + ')?' + '(?=\\\\W|$)', 'i');\n var WEEKDAY_GROUP = 2;\n var DATE_GROUP = 3;\n var DATE_TO_GROUP = 4;\n var MONTH_NAME_GROUP = 5;\n var YEAR_GROUP = 6;\n var YEAR_BE_GROUP = 7;\n\n exports.Parser = function DEMonthNameLittleEndianParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = match[DATE_GROUP];\n day = parseInt(day);\n var year = null;\n\n if (match[YEAR_GROUP]) {\n year = match[YEAR_GROUP];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP]) {\n if (/v/i.test(match[YEAR_BE_GROUP])) {\n // v.Chr.\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n } // Weekday component\n\n\n if (match[WEEKDAY_GROUP]) {\n var weekday = match[WEEKDAY_GROUP];\n weekday = util.WEEKDAY_OFFSET[weekday.toLowerCase()];\n result.start.assign('weekday', weekday);\n } // Text can be 'range' value. Such as '12 - 13 January 2012'\n\n\n if (match[DATE_TO_GROUP]) {\n result.end = result.start.clone();\n result.end.assign('day', parseInt(match[DATE_TO_GROUP]));\n }\n\n result.tags['DEMonthNameLittleEndianParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 62 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n The parser for parsing month name and year.\n \n EX. \n - Januar\n - Januar 2012\n */\n var parser = __webpack_require__(1);\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(8);\n\n var PATTERN = new RegExp('(^|\\\\D\\\\s+|[^\\\\w\\\\s])' + '(Jan\\\\.?|Januar|Feb\\\\.?|Februar|Mär\\\\.?|M(?:ä|ae)rz|Mrz\\\\.?|Apr\\\\.?|April|Mai\\\\.?|Jun\\\\.?|Juni|Jul\\\\.?|Juli|Aug\\\\.?|August|Sep\\\\.?|Sept\\\\.?|September|Okt\\\\.?|Oktober|Nov\\\\.?|November|Dez\\\\.?|Dezember)' + '\\\\s*' + '(?:' + ',?\\\\s*(?:([0-9]{4})(\\\\s*[vn]\\\\.?\\\\s*C(?:hr)?\\\\.?)?|([0-9]{1,4})\\\\s*([vn]\\\\.?\\\\s*C(?:hr)?\\\\.?))' + ')?' + '(?=[^\\\\s\\\\w]|$)', 'i');\n var MONTH_NAME_GROUP = 2;\n var YEAR_GROUP = 3;\n var YEAR_BE_GROUP = 4;\n var YEAR_GROUP2 = 5;\n var YEAR_BE_GROUP2 = 6;\n\n exports.Parser = function ENMonthNameParser() {\n parser.Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var result = new ParsedResult({\n text: match[0].substr(match[1].length, match[0].length - match[1].length),\n index: match.index + match[1].length,\n ref: ref\n });\n var month = match[MONTH_NAME_GROUP];\n month = util.MONTH_OFFSET[month.toLowerCase()];\n var day = 1;\n var year = null;\n\n if (match[YEAR_GROUP] || match[YEAR_GROUP2]) {\n year = match[YEAR_GROUP] || match[YEAR_GROUP2];\n year = parseInt(year);\n\n if (match[YEAR_BE_GROUP] || match[YEAR_BE_GROUP2]) {\n if (/v/i.test(match[YEAR_BE_GROUP] || match[YEAR_BE_GROUP2])) {\n // v.Chr.\n year = -year;\n }\n } else if (year < 100) {\n year = year + 2000;\n }\n }\n\n if (year) {\n result.start.imply('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year);\n } else {\n year = parser.findYearClosestToRef(ref, day, month);\n result.start.imply('day', day);\n result.start.assign('month', month);\n result.start.imply('year', year);\n }\n\n if (this.isStrictMode() && result.text.match(/^\\w+$/)) {\n return false;\n }\n\n result.tags['DEMonthNameParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 63 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Date format with slash \"/\" (also \"-\" and \".\") between numbers\n - Tuesday 11/3/2015\n - 11/3/2015\n - 11/3\n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:' + '(?:am\\\\s*?)?' + '((?:sonntag|so|montag|mo|dienstag|di|mittwoch|mi|donnerstag|do|freitag|fr|samstag|sa))' + '\\\\s*\\\\,?\\\\s*' + '(?:den\\\\s*)?' + ')?' + '([0-3]{0,1}[0-9]{1})[\\\\/\\\\.\\\\-]([0-3]{0,1}[0-9]{1})' + '(?:' + '[\\\\/\\\\.\\\\-]' + '([0-9]{4}\\s*\\,?\\s*|[0-9]{2}\\s*\\,?\\s*)' + ')?' + '(\\\\W|$)', 'i');\n var DAYS_OFFSET = {\n 'sonntag': 0,\n 'so': 0,\n 'montag': 1,\n 'mo': 1,\n 'dienstag': 2,\n 'di': 2,\n 'mittwoch': 3,\n 'mi': 3,\n 'donnerstag': 4,\n 'do': 4,\n 'freitag': 5,\n 'fr': 5,\n 'samstag': 6,\n 'sa': 6\n };\n var OPENNING_GROUP = 1;\n var ENDING_GROUP = 6;\n var WEEKDAY_GROUP = 2;\n var DAY_GROUP = 3;\n var MONTH_GROUP = 4;\n var YEAR_GROUP = 5;\n\n exports.Parser = function DESlashDateFormatParser(argument) {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match[OPENNING_GROUP] == '/' || match[ENDING_GROUP] == '/') {\n // Long skip, if there is some overlapping like:\n // XX[/YY/ZZ]\n // [XX/YY/]ZZ\n match.index += match[0].length;\n return;\n }\n\n var index = match.index + match[OPENNING_GROUP].length;\n var text = match[0].substr(match[OPENNING_GROUP].length, match[0].length - match[ENDING_GROUP].length);\n var result = new ParsedResult({\n text: text,\n index: index,\n ref: ref\n });\n if (text.match(/^\\d\\.\\d$/)) return;\n if (text.match(/^\\d\\.\\d{1,2}\\.\\d{1,2}$/)) return; // MM/dd -> OK\n // MM.dd -> NG\n\n if (!match[YEAR_GROUP] && match[0].indexOf('/') < 0) return;\n var year = match[YEAR_GROUP] || dayjs(ref).year() + '';\n var month = match[MONTH_GROUP];\n var day = match[DAY_GROUP];\n month = parseInt(month);\n day = parseInt(day);\n year = parseInt(year);\n if (month < 1 || month > 12) return null;\n if (day < 1 || day > 31) return null;\n\n if (year < 100) {\n if (year > 50) {\n year = year + 1900;\n } else {\n year = year + 2000;\n }\n }\n\n result.start.assign('day', day);\n result.start.assign('month', month);\n result.start.assign('year', year); //Day of week\n\n if (match[WEEKDAY_GROUP]) {\n result.start.assign('weekday', DAYS_OFFSET[match[WEEKDAY_GROUP].toLowerCase()]);\n }\n\n result.tags['DESlashDateFormatParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 64 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var util = __webpack_require__(8);\n\n var PATTERN = new RegExp('' + '(\\\\W|^)vor\\\\s*' + '(' + util.INTEGER_WORDS_PATTERN + '|[0-9]+|einigen|eine[rm]\\\\s*halben|eine[rm])\\\\s*' + '(sekunden?|min(?:ute)?n?|stunden?|wochen?|tag(?:en)?|monat(?:en)?|jahr(?:en)?)\\\\s*' + '(?=(?:\\\\W|$))', 'i');\n var STRICT_PATTERN = new RegExp('' + '(\\\\W|^)vor\\\\s*' + '([0-9]+|eine(?:r|m))\\\\s*' + '(sekunden?|minuten?|stunden?|tag(?:en)?)' + '(?=(?:\\\\W|$))', 'i');\n\n exports.Parser = function DETimeAgoFormatParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return this.isStrictMode() ? STRICT_PATTERN : PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var text = match[0];\n text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var num = match[2].toLowerCase();\n\n if (util.INTEGER_WORDS[num] !== undefined) {\n num = util.INTEGER_WORDS[num];\n } else if (num === 'einer' || num === 'einem') {\n num = 1;\n } else if (num === 'einigen') {\n num = 3;\n } else if (/halben/.test(num)) {\n num = 0.5;\n } else {\n num = parseInt(num);\n }\n\n var date = dayjs(ref);\n\n if (/stunde|min|sekunde/i.test(match[3])) {\n if (/stunde/i.test(match[3])) {\n date = date.add(-num, 'hour');\n } else if (/min/i.test(match[3])) {\n date = date.add(-num, 'minute');\n } else if (/sekunde/i.test(match[3])) {\n date = date.add(-num, 'second');\n }\n\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.assign('hour', date.hour());\n result.start.assign('minute', date.minute());\n result.start.assign('second', date.second());\n result.tags['DETimeAgoFormatParser'] = true;\n return result;\n }\n\n if (/woche/i.test(match[3])) {\n date = date.add(-num, 'week');\n result.start.imply('day', date.date());\n result.start.imply('month', date.month() + 1);\n result.start.imply('year', date.year());\n result.start.imply('weekday', date.day());\n return result;\n }\n\n if (/tag/i.test(match[3])) {\n date = date.add(-num, 'd');\n }\n\n if (/monat/i.test(match[3])) {\n date = date.add(-num, 'month');\n }\n\n if (/jahr/i.test(match[3])) {\n date = date.add(-num, 'year');\n }\n\n result.start.assign('day', date.date());\n result.start.assign('month', date.month() + 1);\n result.start.assign('year', date.year());\n return result;\n };\n };\n /***/\n\n },\n /* 65 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n \n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var FIRST_REG_PATTERN = new RegExp(\"(^|\\\\s|T)\" + \"(?:(?:um|von)\\\\s*)?\" + \"(\\\\d{1,4}|mittags?|mitternachts?)\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\:|\\\\:)(\\\\d{2})\" + \")?\" + \")?\" + \"(?:\\\\s*uhr)?\" + \"(?:\\\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?\" + \"(?=\\\\W|$)\", 'i');\n var SECOND_REG_PATTERN = new RegExp(\"^\\\\s*\" + \"(\\\\-|\\\\–|\\\\~|\\\\〜|bis|\\\\?)\\\\s*\" + \"(\\\\d{1,4})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \"(?:\" + \"(?:\\\\.|\\\\:|\\\\:)(\\\\d{1,2})\" + \")?\" + \")?\" + \"(?:\\\\s*(morgens|vormittags|mittags|nachmittags|abends|nachts))?\" + \"(?=\\\\W|$)\", 'i');\n var HOUR_GROUP = 2;\n var MINUTE_GROUP = 3;\n var SECOND_GROUP = 4;\n var AM_PM_HOUR_GROUP = 5;\n\n exports.Parser = function DETimeExpressionParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return FIRST_REG_PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n // This pattern can be overlaped Ex. [12] AM, 1[2] AM\n if (match.index > 0 && text[match.index - 1].match(/\\w/)) return null;\n var refMoment = dayjs(ref);\n var result = new ParsedResult();\n result.ref = ref;\n result.index = match.index + match[1].length;\n result.text = match[0].substring(match[1].length);\n result.tags['DETimeExpressionParser'] = true;\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.start.assign('second', second);\n } // ----- Hours\n\n\n if (/mittags?/i.test(match[HOUR_GROUP])) {\n meridiem = 1;\n hour = 12;\n } else if (/mitternachts?/i.test(match[HOUR_GROUP])) {\n meridiem = 0;\n hour = 0;\n } else {\n hour = parseInt(match[HOUR_GROUP]);\n } // ----- Minutes\n\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM \n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm === 'morgens' || ampm === 'vormittags') {\n meridiem = 0;\n if (hour == 12) hour = 0;\n } else {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n }\n\n result.start.assign('hour', hour);\n result.start.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.start.assign('meridiem', meridiem);\n } else {\n if (hour < 12) {\n result.start.imply('meridiem', 0);\n } else {\n result.start.imply('meridiem', 1);\n }\n } // ==============================================================\n // Extracting the 'to' chunk\n // ==============================================================\n\n\n match = SECOND_REG_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n // Not accept number only result\n if (result.text.match(/^\\d+$/)) {\n return null;\n }\n\n return result;\n } // Pattern \"YY.YY -XXXX\" is more like timezone offset\n\n\n if (match[0].match(/^\\s*(\\+|\\-)\\s*\\d{3,4}$/)) {\n return result;\n }\n\n if (result.end == null) {\n result.end = new ParsedComponents(null, result.start.date());\n }\n\n var hour = 0;\n var minute = 0;\n var meridiem = -1; // ----- Second\n\n if (match[SECOND_GROUP] != null) {\n var second = parseInt(match[SECOND_GROUP]);\n if (second >= 60) return null;\n result.end.assign('second', second);\n }\n\n hour = parseInt(match[2]); // ----- Minute\n\n if (match[MINUTE_GROUP] != null) {\n minute = parseInt(match[MINUTE_GROUP]);\n if (minute >= 60) return result;\n } else if (hour > 100) {\n minute = hour % 100;\n hour = parseInt(hour / 100);\n }\n\n if (minute >= 60) {\n return null;\n }\n\n if (hour > 24) {\n return null;\n }\n\n if (hour >= 12) {\n meridiem = 1;\n } // ----- AM & PM \n\n\n if (match[AM_PM_HOUR_GROUP] != null) {\n if (hour > 12) return null;\n var ampm = match[AM_PM_HOUR_GROUP][0].toLowerCase();\n\n if (ampm === 'morgens' || ampm === 'vormittags') {\n meridiem = 0;\n\n if (hour == 12) {\n hour = 0;\n\n if (!result.end.isCertain('day')) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n }\n } else {\n meridiem = 1;\n if (hour != 12) hour += 12;\n }\n\n if (!result.start.isCertain('meridiem')) {\n if (meridiem == 0) {\n result.start.imply('meridiem', 0);\n\n if (result.start.get('hour') == 12) {\n result.start.assign('hour', 0);\n }\n } else {\n result.start.imply('meridiem', 1);\n\n if (result.start.get('hour') != 12) {\n result.start.assign('hour', result.start.get('hour') + 12);\n }\n }\n }\n }\n\n result.text = result.text + match[0];\n result.end.assign('hour', hour);\n result.end.assign('minute', minute);\n\n if (meridiem >= 0) {\n result.end.assign('meridiem', meridiem);\n } else {\n var startAtPM = result.start.isCertain('meridiem') && result.start.get('meridiem') == 1;\n\n if (startAtPM && result.start.get('hour') > hour) {\n // 10pm - 1 (am)\n result.end.imply('meridiem', 0);\n } else if (hour > 12) {\n result.end.imply('meridiem', 1);\n }\n }\n\n if (result.end.date().getTime() < result.start.date().getTime()) {\n result.end.imply('day', result.end.get('day') + 1);\n }\n\n return result;\n };\n };\n /***/\n\n },\n /* 66 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n \n */\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var DAYS_OFFSET = {\n 'sonntag': 0,\n 'so': 0,\n 'montag': 1,\n 'mo': 1,\n 'dienstag': 2,\n 'di': 2,\n 'mittwoch': 3,\n 'mi': 3,\n 'donnerstag': 4,\n 'do': 4,\n 'freitag': 5,\n 'fr': 5,\n 'samstag': 6,\n 'sa': 6\n };\n var PATTERN = new RegExp('(\\\\W|^)' + '(?:(?:\\\\,|\\\\(|\\\\()\\\\s*)?' + '(?:a[mn]\\\\s*?)?' + '(?:(diese[mn]|letzte[mn]|n(?:ä|ae)chste[mn])\\\\s*)?' + '(' + Object.keys(DAYS_OFFSET).join('|') + ')' + '(?:\\\\s*(?:\\\\,|\\\\)|\\\\)))?' + '(?:\\\\s*(diese|letzte|n(?:ä|ae)chste)\\\\s*woche)?' + '(?=\\\\W|$)', 'i');\n var PREFIX_GROUP = 2;\n var WEEKDAY_GROUP = 3;\n var POSTFIX_GROUP = 4;\n\n exports.Parser = function DEWeekdayParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n var index = match.index + match[1].length;\n var text = match[0].substr(match[1].length, match[0].length - match[1].length);\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var dayOfWeek = match[WEEKDAY_GROUP].toLowerCase();\n var offset = DAYS_OFFSET[dayOfWeek];\n if (offset === undefined) return null;\n var startMoment = dayjs(ref);\n var prefix = match[PREFIX_GROUP];\n var postfix = match[POSTFIX_GROUP];\n var refOffset = startMoment.day();\n var norm = prefix || postfix;\n norm = norm || '';\n norm = norm.toLowerCase();\n\n if (/letzte/.test(norm)) {\n startMoment = startMoment.day(offset - 7);\n } else if (/n(?:ä|ae)chste/.test(norm)) {\n startMoment = startMoment.day(offset + 7);\n } else if (/diese/.test(norm)) {\n if (opt.forwardDate && refOffset > offset) {\n startMoment = startMoment.day(offset + 7);\n } else {\n startMoment = startMoment.day(offset);\n }\n } else {\n if (opt.forwardDate && refOffset > offset) {\n startMoment = startMoment.day(offset + 7);\n } else if (!opt.forwardDate && Math.abs(offset - 7 - refOffset) < Math.abs(offset - refOffset)) {\n startMoment = startMoment.day(offset - 7);\n } else if (!opt.forwardDate && Math.abs(offset + 7 - refOffset) < Math.abs(offset - refOffset)) {\n startMoment = startMoment.day(offset + 7);\n } else {\n startMoment = startMoment.day(offset);\n }\n }\n\n result.start.assign('weekday', offset);\n result.start.imply('day', startMoment.date());\n result.start.imply('month', startMoment.month() + 1);\n result.start.imply('year', startMoment.year());\n return result;\n };\n };\n /***/\n\n },\n /* 67 */\n\n /***/\n function (module, exports, __webpack_require__) {\n var dayjs = __webpack_require__(2);\n\n var Parser = __webpack_require__(1).Parser;\n\n var ParsedResult = __webpack_require__(0).ParsedResult;\n\n var PATTERN = new RegExp('(\\\\W|^)(' + 'jetzt|' + '(?:heute|diesen)\\\\s*(morgen|vormittag|mittag|nachmittag|abend)|' + '(?:heute|diese)\\\\s*nacht|' + 'heute|' + '(?:(?:ü|ue)ber)?morgen(?:\\\\s*(morgen|vormittag|mittag|nachmittag|abend|nacht))?|' + '(?:vor)?gestern(?:\\\\s*(morgen|vormittag|mittag|nachmittag|abend|nacht))?|' + 'letzte\\\\s*nacht' + ')(?=\\\\W|$)', 'i');\n\n exports.Parser = function DECasualDateParser() {\n Parser.apply(this, arguments);\n\n this.pattern = function () {\n return PATTERN;\n };\n\n this.extract = function (text, ref, match, opt) {\n text = match[0].substr(match[1].length);\n var index = match.index + match[1].length;\n var result = new ParsedResult({\n index: index,\n text: text,\n ref: ref\n });\n var refMoment = dayjs(ref);\n var lowerText = text.toLowerCase();\n var startMoment = refMoment;\n\n if (/(?:heute|diese)\\s*nacht/.test(lowerText)) {\n // Normally means this coming midnight\n result.start.imply('hour', 22);\n result.start.imply('meridiem', 1);\n } else if (/^(?:ü|ue)bermorgen/.test(lowerText)) {\n startMoment = startMoment.add(refMoment.hour() > 1 ? 2 : 1, 'day');\n } else if (/^morgen/.test(lowerText)) {\n // Check not \"Tomorrow\" on late night\n if (refMoment.hour() > 1) {\n startMoment = startMoment.add(1, 'day');\n }\n } else if (/^gestern/.test(lowerText)) {\n startMoment = startMoment.add(-1, 'day');\n } else if (/^vorgestern/.test(lowerText)) {\n startMoment = startMoment.add(-2, 'day');\n } else if (/letzte\\s*nacht/.test(lowerText)) {\n result.start.imply('hour', 0);\n\n if (refMoment.hour() > 6) {\n startMoment = startMoment.add(-1, 'day');\n }\n } else if (lowerText === 'jetzt') {\n result.start.imply('hour', refMoment.hour());\n result.start.imply('minute', refMoment.minute());\n result.start.imply('second', refMoment.second());\n result.start.imply('millisecond', refMoment.millisecond());\n }\n\n var secondMatch = match[3] || match[4] || match[5];\n\n if (secondMatch) {\n switch (secondMatch.toLowerCase()) {\n case 'morgen':\n result.start.imply('hour', 6);\n break;\n\n case 'vormittag':\n result.start.imply('hour', 9);\n break;\n\n case 'mittag':\n result.start.imply('hour', 12);\n break;\n\n case 'nachmittag':\n result.start.imply('hour', 15);\n result.start.imply('meridiem', 1);\n break;\n\n case 'abend':\n result.start.imply('hour', 18);\n result.start.imply('meridiem', 1);\n break;\n\n case 'nacht':\n result.start.imply('hour', 0);\n break;\n }\n }\n\n result.start.assign('day', startMoment.date());\n result.start.assign('month', startMoment.month() + 1);\n result.start.assign('year', startMoment.year());\n result.tags['DECasualDateParser'] = true;\n return result;\n };\n };\n /***/\n\n },\n /* 68 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var Refiner = __webpack_require__(3).Refiner;\n\n exports.Refiner = function OverlapRemovalRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var filteredResults = [];\n var prevResult = results[0];\n\n for (var i = 1; i < results.length; i++) {\n var result = results[i]; // If overlap, compare the length and discard the shorter one\n\n if (result.index < prevResult.index + prevResult.text.length) {\n if (result.text.length > prevResult.text.length) {\n prevResult = result;\n }\n } else {\n filteredResults.push(prevResult);\n prevResult = result;\n }\n } // The last one\n\n\n if (prevResult != null) {\n filteredResults.push(prevResult);\n }\n\n return filteredResults;\n };\n };\n /***/\n\n },\n /* 69 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var Refiner = __webpack_require__(3).Refiner;\n\n var TIMEZONE_OFFSET_PATTERN = new RegExp(\"^\\\\s*(GMT|UTC)?(\\\\+|\\\\-)(\\\\d{1,2}):?(\\\\d{2})\", 'i');\n var TIMEZONE_OFFSET_SIGN_GROUP = 2;\n var TIMEZONE_OFFSET_HOUR_OFFSET_GROUP = 3;\n var TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP = 4;\n\n exports.Refiner = function ExtractTimezoneOffsetRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n results.forEach(function (result) {\n if (result.start.isCertain('timezoneOffset')) {\n return;\n }\n\n var match = TIMEZONE_OFFSET_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (!match) {\n return;\n }\n\n var hourOffset = parseInt(match[TIMEZONE_OFFSET_HOUR_OFFSET_GROUP]);\n var minuteOffset = parseInt(match[TIMEZONE_OFFSET_MINUTE_OFFSET_GROUP]);\n var timezoneOffset = hourOffset * 60 + minuteOffset;\n\n if (match[TIMEZONE_OFFSET_SIGN_GROUP] === '-') {\n timezoneOffset = -timezoneOffset;\n }\n\n if (result.end != null) {\n result.end.assign('timezoneOffset', timezoneOffset);\n }\n\n result.start.assign('timezoneOffset', timezoneOffset);\n result.text += match[0];\n result.tags['ExtractTimezoneOffsetRefiner'] = true;\n });\n return results;\n };\n };\n /***/\n\n },\n /* 70 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var Refiner = __webpack_require__(3).Refiner; // Map ABBR -> Offset in minute\n\n\n var TIMEZONE_NAME_PATTERN = new RegExp(\"^\\\\s*\\\\(?([A-Z]{2,4})\\\\)?(?=\\\\W|$)\", 'i');\n var DEFAULT_TIMEZONE_ABBR_MAP = {\n \"ACDT\": 630,\n \"ACST\": 570,\n \"ADT\": -180,\n \"AEDT\": 660,\n \"AEST\": 600,\n \"AFT\": 270,\n \"AKDT\": -480,\n \"AKST\": -540,\n \"ALMT\": 360,\n \"AMST\": -180,\n \"AMT\": -240,\n \"ANAST\": 720,\n \"ANAT\": 720,\n \"AQTT\": 300,\n \"ART\": -180,\n \"AST\": -240,\n \"AWDT\": 540,\n \"AWST\": 480,\n \"AZOST\": 0,\n \"AZOT\": -60,\n \"AZST\": 300,\n \"AZT\": 240,\n \"BNT\": 480,\n \"BOT\": -240,\n \"BRST\": -120,\n \"BRT\": -180,\n \"BST\": 60,\n \"BTT\": 360,\n \"CAST\": 480,\n \"CAT\": 120,\n \"CCT\": 390,\n \"CDT\": -300,\n \"CEST\": 120,\n \"CET\": 60,\n \"CHADT\": 825,\n \"CHAST\": 765,\n \"CKT\": -600,\n \"CLST\": -180,\n \"CLT\": -240,\n \"COT\": -300,\n \"CST\": -360,\n \"CVT\": -60,\n \"CXT\": 420,\n \"ChST\": 600,\n \"DAVT\": 420,\n \"EASST\": -300,\n \"EAST\": -360,\n \"EAT\": 180,\n \"ECT\": -300,\n \"EDT\": -240,\n \"EEST\": 180,\n \"EET\": 120,\n \"EGST\": 0,\n \"EGT\": -60,\n \"EST\": -300,\n \"ET\": -300,\n \"FJST\": 780,\n \"FJT\": 720,\n \"FKST\": -180,\n \"FKT\": -240,\n \"FNT\": -120,\n \"GALT\": -360,\n \"GAMT\": -540,\n \"GET\": 240,\n \"GFT\": -180,\n \"GILT\": 720,\n \"GMT\": 0,\n \"GST\": 240,\n \"GYT\": -240,\n \"HAA\": -180,\n \"HAC\": -300,\n \"HADT\": -540,\n \"HAE\": -240,\n \"HAP\": -420,\n \"HAR\": -360,\n \"HAST\": -600,\n \"HAT\": -90,\n \"HAY\": -480,\n \"HKT\": 480,\n \"HLV\": -210,\n \"HNA\": -240,\n \"HNC\": -360,\n \"HNE\": -300,\n \"HNP\": -480,\n \"HNR\": -420,\n \"HNT\": -150,\n \"HNY\": -540,\n \"HOVT\": 420,\n \"ICT\": 420,\n \"IDT\": 180,\n \"IOT\": 360,\n \"IRDT\": 270,\n \"IRKST\": 540,\n \"IRKT\": 540,\n \"IRST\": 210,\n \"IST\": 330,\n \"JST\": 540,\n \"KGT\": 360,\n \"KRAST\": 480,\n \"KRAT\": 480,\n \"KST\": 540,\n \"KUYT\": 240,\n \"LHDT\": 660,\n \"LHST\": 630,\n \"LINT\": 840,\n \"MAGST\": 720,\n \"MAGT\": 720,\n \"MART\": -510,\n \"MAWT\": 300,\n \"MDT\": -360,\n \"MESZ\": 120,\n \"MEZ\": 60,\n \"MHT\": 720,\n \"MMT\": 390,\n \"MSD\": 240,\n \"MSK\": 240,\n \"MST\": -420,\n \"MUT\": 240,\n \"MVT\": 300,\n \"MYT\": 480,\n \"NCT\": 660,\n \"NDT\": -90,\n \"NFT\": 690,\n \"NOVST\": 420,\n \"NOVT\": 360,\n \"NPT\": 345,\n \"NST\": -150,\n \"NUT\": -660,\n \"NZDT\": 780,\n \"NZST\": 720,\n \"OMSST\": 420,\n \"OMST\": 420,\n \"PDT\": -420,\n \"PET\": -300,\n \"PETST\": 720,\n \"PETT\": 720,\n \"PGT\": 600,\n \"PHOT\": 780,\n \"PHT\": 480,\n \"PKT\": 300,\n \"PMDT\": -120,\n \"PMST\": -180,\n \"PONT\": 660,\n \"PST\": -480,\n \"PT\": -480,\n \"PWT\": 540,\n \"PYST\": -180,\n \"PYT\": -240,\n \"RET\": 240,\n \"SAMT\": 240,\n \"SAST\": 120,\n \"SBT\": 660,\n \"SCT\": 240,\n \"SGT\": 480,\n \"SRT\": -180,\n \"SST\": -660,\n \"TAHT\": -600,\n \"TFT\": 300,\n \"TJT\": 300,\n \"TKT\": 780,\n \"TLT\": 540,\n \"TMT\": 300,\n \"TVT\": 720,\n \"ULAT\": 480,\n \"UTC\": 0,\n \"UYST\": -120,\n \"UYT\": -180,\n \"UZT\": 300,\n \"VET\": -210,\n \"VLAST\": 660,\n \"VLAT\": 660,\n \"VUT\": 660,\n \"WAST\": 120,\n \"WAT\": 60,\n \"WEST\": 60,\n \"WESZ\": 60,\n \"WET\": 0,\n \"WEZ\": 0,\n \"WFT\": 720,\n \"WGST\": -120,\n \"WGT\": -180,\n \"WIB\": 420,\n \"WIT\": 540,\n \"WITA\": 480,\n \"WST\": 780,\n \"WT\": 0,\n \"YAKST\": 600,\n \"YAKT\": 600,\n \"YAPT\": 600,\n \"YEKST\": 360,\n \"YEKT\": 360\n };\n\n exports.Refiner = function ExtractTimezoneAbbrRefiner(config) {\n Refiner.call(this, arguments);\n\n this.refine = function (text, results, opt) {\n var timezones = new Object(DEFAULT_TIMEZONE_ABBR_MAP);\n\n if (opt.timezones) {\n for (var name in opt.timezones) {\n timezones[name] = opt.timezones[name];\n }\n }\n\n results.forEach(function (result) {\n if (!result.tags['ENTimeExpressionParser'] && !result.tags['ZHTimeExpressionParser'] && !result.tags['FRTimeExpressionParser'] && !result.tags['DETimeExpressionParser']) {\n return;\n }\n\n var match = TIMEZONE_NAME_PATTERN.exec(text.substring(result.index + result.text.length));\n\n if (match) {\n var timezoneAbbr = match[1].toUpperCase();\n\n if (timezones[timezoneAbbr] === undefined) {\n return;\n }\n\n var timezoneOffset = timezones[timezoneAbbr];\n\n if (!result.start.isCertain('timezoneOffset')) {\n result.start.assign('timezoneOffset', timezoneOffset);\n }\n\n if (result.end != null && !result.end.isCertain('timezoneOffset')) {\n result.end.assign('timezoneOffset', timezoneOffset);\n }\n\n result.text += match[0];\n result.tags['ExtractTimezoneAbbrRefiner'] = true;\n }\n });\n return results;\n };\n };\n /***/\n\n },\n /* 71 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n Enforce 'forwardDate' option to on the results. When there are missing component,\n e.g. \"March 12-13 (without year)\" or \"Thursday\", the refiner will try to adjust the result\n into the future instead of the past.\n */\n var dayjs = __webpack_require__(2);\n\n var Refiner = __webpack_require__(3).Refiner;\n\n exports.Refiner = function ForwardDateRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (!opt['forwardDate']) {\n return results;\n }\n\n results.forEach(function (result) {\n var refMoment = dayjs(result.ref);\n\n if (result.start.isOnlyDayMonthComponent() && refMoment.isAfter(result.start.dayjs())) {\n // Adjust year into the future\n for (var i = 0; i < 3 && refMoment.isAfter(result.start.dayjs()); i++) {\n result.start.imply('year', result.start.get('year') + 1);\n\n if (result.end && !result.end.isCertain('year')) {\n result.end.imply('year', result.end.get('year') + 1);\n }\n }\n\n result.tags['ForwardDateRefiner'] = true;\n }\n\n if (result.start.isOnlyWeekdayComponent() && refMoment.isAfter(result.start.dayjs())) {\n // Adjust date to the coming week\n if (refMoment.day() > result.start.get('weekday')) {\n refMoment = refMoment.day(result.start.get('weekday') + 7);\n } else {\n refMoment = refMoment.day(result.start.get('weekday'));\n }\n\n result.start.imply('day', refMoment.date());\n result.start.imply('month', refMoment.month() + 1);\n result.start.imply('year', refMoment.year());\n result.tags['ForwardDateRefiner'] = true;\n }\n });\n return results;\n };\n };\n /***/\n\n },\n /* 72 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var Filter = __webpack_require__(3).Filter;\n\n exports.Refiner = function UnlikelyFormatFilter() {\n Filter.call(this);\n\n this.isValid = function (text, result, opt) {\n if (result.text.replace(' ', '').match(/^\\d*(\\.\\d*)?$/)) {\n return false;\n }\n\n return true;\n };\n };\n /***/\n\n },\n /* 73 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var Refiner = __webpack_require__(3).Refiner;\n\n var PATTERN = new RegExp(\"^\\\\s*(at|after|before|on|,|-|\\\\(|\\\\))?\\\\s*$\");\n\n function isMoreSpecific(prevResult, currResult) {\n var moreSpecific = false;\n\n if (prevResult.start.isCertain('year')) {\n if (!currResult.start.isCertain('year')) {\n moreSpecific = true;\n } else {\n if (prevResult.start.isCertain('month')) {\n if (!currResult.start.isCertain('month')) {\n moreSpecific = true;\n } else {\n if (prevResult.start.isCertain('day') && !currResult.start.isCertain('day')) {\n moreSpecific = true;\n }\n }\n }\n }\n }\n\n return moreSpecific;\n }\n\n function isAbleToMerge(text, prevResult, currResult) {\n var textBetween = text.substring(prevResult.index + prevResult.text.length, currResult.index); // Only accepts merge if one of them comes from casual relative date\n\n var includesRelativeResult = prevResult.tags['ENRelativeDateFormatParser'] || currResult.tags['ENRelativeDateFormatParser']; // We assume they refer to the same date if all date fields are implied\n\n var referToSameDate = !prevResult.start.isCertain('day') && !prevResult.start.isCertain('month') && !prevResult.start.isCertain('year'); // If both years are certain, that determines if they refer to the same date\n // but with one more specific than the other\n\n if (prevResult.start.isCertain('year') && currResult.start.isCertain('year')) referToSameDate = prevResult.start.get('year') === currResult.start.get('year'); // We now test with the next level (month) if they refer to the same date\n\n if (prevResult.start.isCertain('month') && currResult.start.isCertain('month')) referToSameDate = prevResult.start.get('month') === currResult.start.get('month') && referToSameDate;\n return includesRelativeResult && textBetween.match(PATTERN) && referToSameDate;\n }\n\n function mergeResult(text, specificResult, nonSpecificResult) {\n var specificDate = specificResult.start;\n var nonSpecificDate = nonSpecificResult.start;\n var startIndex = Math.min(specificResult.index, nonSpecificResult.index);\n var endIndex = Math.max(specificResult.index + specificResult.text.length, nonSpecificResult.index + nonSpecificResult.text.length);\n specificResult.index = startIndex;\n specificResult.text = text.substring(startIndex, endIndex);\n\n for (var tag in nonSpecificResult.tags) {\n specificResult.tags[tag] = true;\n }\n\n specificResult.tags['ENPrioritizeSpecificDateRefiner'] = true;\n return specificResult;\n }\n\n exports.Refiner = function ENPrioritizeSpecificDateRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (isMoreSpecific(prevResult, currResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, prevResult, currResult);\n currResult = null;\n i += 1;\n } else if (isMoreSpecific(currResult, prevResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, currResult, prevResult);\n currResult = null;\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n };\n /***/\n\n },\n /* 74 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var ENMergeDateRangeRefiner = __webpack_require__(10).Refiner;\n\n exports.Refiner = function JPMergeDateRangeRefiner() {\n ENMergeDateRangeRefiner.call(this);\n\n this.pattern = function () {\n return /^\\s*(から|ー)\\s*$/i;\n };\n };\n /***/\n\n },\n /* 75 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\r\n \r\n */\n var Refiner = __webpack_require__(3).Refiner;\n\n exports.Refiner = function FRMergeDateRangeRefiner() {\n Refiner.call(this);\n\n this.pattern = function () {\n return /^\\s*(à|a|\\-)\\s*$/i;\n };\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (!prevResult.end && !currResult.end && this.isAbleToMerge(text, prevResult, currResult)) {\n prevResult = this.mergeResult(text, prevResult, currResult);\n currResult = null;\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n\n this.isAbleToMerge = function (text, result1, result2) {\n var begin = result1.index + result1.text.length;\n var end = result2.index;\n var textBetween = text.substring(begin, end);\n return textBetween.match(this.pattern());\n };\n\n this.isWeekdayResult = function (result) {\n return result.start.isCertain('weekday') && !result.start.isCertain('day');\n };\n\n this.mergeResult = function (text, fromResult, toResult) {\n if (!this.isWeekdayResult(fromResult) && !this.isWeekdayResult(toResult)) {\n for (var key in toResult.start.knownValues) {\n if (!fromResult.start.isCertain(key)) {\n fromResult.start.assign(key, toResult.start.get(key));\n }\n }\n\n for (var key in fromResult.start.knownValues) {\n if (!toResult.start.isCertain(key)) {\n toResult.start.assign(key, fromResult.start.get(key));\n }\n }\n }\n\n if (fromResult.start.date().getTime() > toResult.start.date()) {\n var tmp = toResult;\n toResult = fromResult;\n fromResult = tmp;\n }\n\n fromResult.end = toResult.start;\n\n for (var tag in toResult.tags) {\n fromResult.tags[tag] = true;\n }\n\n var startIndex = Math.min(fromResult.index, toResult.index);\n var endIndex = Math.max(fromResult.index + fromResult.text.length, toResult.index + toResult.text.length);\n fromResult.index = startIndex;\n fromResult.text = text.substring(startIndex, endIndex);\n fromResult.tags[this.constructor.name] = true;\n return fromResult;\n };\n };\n /***/\n\n },\n /* 76 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\r\n \r\n */\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var Refiner = __webpack_require__(3).Refiner;\n\n var mergeDateTimeComponent = __webpack_require__(6).mergeDateTimeComponent;\n\n var PATTERN = new RegExp(\"^\\\\s*(T|à|a|vers|de|,|-)?\\\\s*$\");\n\n function isDateOnly(result) {\n return !result.start.isCertain('hour') || result.tags['FRCasualDateParser'];\n }\n\n function isTimeOnly(result) {\n return !result.start.isCertain('month') && !result.start.isCertain('weekday');\n }\n\n function isAbleToMerge(text, prevResult, curResult) {\n var textBetween = text.substring(prevResult.index + prevResult.text.length, curResult.index);\n return textBetween.match(PATTERN);\n }\n\n function mergeResult(text, dateResult, timeResult) {\n var beginDate = dateResult.start;\n var beginTime = timeResult.start;\n var beginDateTime = mergeDateTimeComponent(beginDate, beginTime);\n\n if (dateResult.end != null || timeResult.end != null) {\n var endDate = dateResult.end == null ? dateResult.start : dateResult.end;\n var endTime = timeResult.end == null ? timeResult.start : timeResult.end;\n var endDateTime = mergeDateTimeComponent(endDate, endTime);\n\n if (dateResult.end == null && endDateTime.date().getTime() < beginDateTime.date().getTime()) {\n // Ex. 9pm - 1am\n if (endDateTime.isCertain('day')) {\n endDateTime.assign('day', endDateTime.get('day') + 1);\n } else {\n endDateTime.imply('day', endDateTime.get('day') + 1);\n }\n }\n\n dateResult.end = endDateTime;\n }\n\n dateResult.start = beginDateTime;\n var startIndex = Math.min(dateResult.index, timeResult.index);\n var endIndex = Math.max(dateResult.index + dateResult.text.length, timeResult.index + timeResult.text.length);\n dateResult.index = startIndex;\n dateResult.text = text.substring(startIndex, endIndex);\n\n for (var tag in timeResult.tags) {\n dateResult.tags[tag] = true;\n }\n\n dateResult.tags['FRMergeDateAndTimeRefiner'] = true;\n return dateResult;\n }\n\n exports.Refiner = function FRMergeDateTimeRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (isDateOnly(prevResult) && isTimeOnly(currResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, prevResult, currResult);\n currResult = null;\n i += 1;\n } else if (isDateOnly(currResult) && isTimeOnly(prevResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, currResult, prevResult);\n currResult = null;\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n };\n /***/\n\n },\n /* 77 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var ENMergeDateRangeRefiner = __webpack_require__(10).Refiner;\n\n exports.Refiner = function DEMergeDateRangeRefiner() {\n ENMergeDateRangeRefiner.call(this);\n\n this.pattern = function () {\n return /^\\s*(bis(?:\\s*(?:am|zum))?|\\-)\\s*$/i;\n };\n };\n /***/\n\n },\n /* 78 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /*\n \n */\n var ParsedComponents = __webpack_require__(0).ParsedComponents;\n\n var Refiner = __webpack_require__(3).Refiner;\n\n var mergeDateTimeComponent = __webpack_require__(6).mergeDateTimeComponent;\n\n var isDateOnly = __webpack_require__(6).isDateOnly;\n\n var isTimeOnly = __webpack_require__(6).isTimeOnly;\n\n var PATTERN = new RegExp(\"^\\\\s*(T|um|am|,|-)?\\\\s*$\");\n\n function isAbleToMerge(text, prevResult, curResult) {\n var textBetween = text.substring(prevResult.index + prevResult.text.length, curResult.index);\n return textBetween.match(PATTERN);\n }\n\n function mergeResult(text, dateResult, timeResult) {\n var beginDate = dateResult.start;\n var beginTime = timeResult.start;\n var beginDateTime = mergeDateTimeComponent(beginDate, beginTime);\n\n if (dateResult.end != null || timeResult.end != null) {\n var endDate = dateResult.end == null ? dateResult.start : dateResult.end;\n var endTime = timeResult.end == null ? timeResult.start : timeResult.end;\n var endDateTime = mergeDateTimeComponent(endDate, endTime);\n\n if (dateResult.end == null && endDateTime.date().getTime() < beginDateTime.date().getTime()) {\n // Ex. 9pm - 1am\n if (endDateTime.isCertain('day')) {\n endDateTime.assign('day', endDateTime.get('day') + 1);\n } else {\n endDateTime.imply('day', endDateTime.get('day') + 1);\n }\n }\n\n dateResult.end = endDateTime;\n }\n\n dateResult.start = beginDateTime;\n var startIndex = Math.min(dateResult.index, timeResult.index);\n var endIndex = Math.max(dateResult.index + dateResult.text.length, timeResult.index + timeResult.text.length);\n dateResult.index = startIndex;\n dateResult.text = text.substring(startIndex, endIndex);\n\n for (var tag in timeResult.tags) {\n dateResult.tags[tag] = true;\n }\n\n dateResult.tags['DEMergeDateAndTimeRefiner'] = true;\n return dateResult;\n }\n\n exports.Refiner = function DEMergeDateTimeRefiner() {\n Refiner.call(this);\n\n this.refine = function (text, results, opt) {\n if (results.length < 2) return results;\n var mergedResult = [];\n var currResult = null;\n var prevResult = null;\n\n for (var i = 1; i < results.length; i++) {\n currResult = results[i];\n prevResult = results[i - 1];\n\n if (isDateOnly(prevResult) && isTimeOnly(currResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, prevResult, currResult);\n currResult = null;\n i += 1;\n } else if (isDateOnly(currResult) && isTimeOnly(prevResult) && isAbleToMerge(text, prevResult, currResult)) {\n prevResult = mergeResult(text, currResult, prevResult);\n currResult = null;\n i += 1;\n }\n\n mergedResult.push(prevResult);\n }\n\n if (currResult != null) {\n mergedResult.push(currResult);\n }\n\n return mergedResult;\n };\n };\n /***/\n\n }\n /******/\n ])\n );\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTrix 1.2.3\nCopyright © 2020 Basecamp, LLC\nhttp://trix-editor.org/\n */\n(function () {}).call(this), function () {\n var t;\n null == window.Set && (window.Set = t = function () {\n function t() {\n this.clear();\n }\n\n return t.prototype.clear = function () {\n return this.values = [];\n }, t.prototype.has = function (t) {\n return -1 !== this.values.indexOf(t);\n }, t.prototype.add = function (t) {\n return this.has(t) || this.values.push(t), this;\n }, t.prototype[\"delete\"] = function (t) {\n var e;\n return -1 === (e = this.values.indexOf(t)) ? !1 : (this.values.splice(e, 1), !0);\n }, t.prototype.forEach = function () {\n var t;\n return (t = this.values).forEach.apply(t, arguments);\n }, t;\n }());\n}.call(this), function (t) {\n function e() {}\n\n function n(t, e) {\n return function () {\n t.apply(e, arguments);\n };\n }\n\n function i(t) {\n if (\"object\" != _typeof(this)) throw new TypeError(\"Promises must be constructed via new\");\n if (\"function\" != typeof t) throw new TypeError(\"not a function\");\n this._state = 0, this._handled = !1, this._value = void 0, this._deferreds = [], c(t, this);\n }\n\n function o(t, e) {\n for (; 3 === t._state;) {\n t = t._value;\n }\n\n return 0 === t._state ? void t._deferreds.push(e) : (t._handled = !0, void h(function () {\n var n = 1 === t._state ? e.onFulfilled : e.onRejected;\n if (null === n) return void (1 === t._state ? r : s)(e.promise, t._value);\n var i;\n\n try {\n i = n(t._value);\n } catch (o) {\n return void s(e.promise, o);\n }\n\n r(e.promise, i);\n }));\n }\n\n function r(t, e) {\n try {\n if (e === t) throw new TypeError(\"A promise cannot be resolved with itself.\");\n\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) {\n var o = e.then;\n if (e instanceof i) return t._state = 3, t._value = e, void a(t);\n if (\"function\" == typeof o) return void c(n(o, e), t);\n }\n\n t._state = 1, t._value = e, a(t);\n } catch (r) {\n s(t, r);\n }\n }\n\n function s(t, e) {\n t._state = 2, t._value = e, a(t);\n }\n\n function a(t) {\n 2 === t._state && 0 === t._deferreds.length && setTimeout(function () {\n t._handled || p(t._value);\n }, 1);\n\n for (var e = 0, n = t._deferreds.length; n > e; e++) {\n o(t, t._deferreds[e]);\n }\n\n t._deferreds = null;\n }\n\n function u(t, e, n) {\n this.onFulfilled = \"function\" == typeof t ? t : null, this.onRejected = \"function\" == typeof e ? e : null, this.promise = n;\n }\n\n function c(t, e) {\n var n = !1;\n\n try {\n t(function (t) {\n n || (n = !0, r(e, t));\n }, function (t) {\n n || (n = !0, s(e, t));\n });\n } catch (i) {\n if (n) return;\n n = !0, s(e, i);\n }\n }\n\n var l = setTimeout,\n h = \"function\" == typeof setImmediate && setImmediate || function (t) {\n l(t, 1);\n },\n p = function p(t) {\n \"undefined\" != typeof console && console && console.warn(\"Possible Unhandled Promise Rejection:\", t);\n };\n\n i.prototype[\"catch\"] = function (t) {\n return this.then(null, t);\n }, i.prototype.then = function (t, n) {\n var r = new i(e);\n return o(this, new u(t, n, r)), r;\n }, i.all = function (t) {\n var e = Array.prototype.slice.call(t);\n return new i(function (t, n) {\n function i(r, s) {\n try {\n if (s && (\"object\" == _typeof(s) || \"function\" == typeof s)) {\n var a = s.then;\n if (\"function\" == typeof a) return void a.call(s, function (t) {\n i(r, t);\n }, n);\n }\n\n e[r] = s, 0 === --o && t(e);\n } catch (u) {\n n(u);\n }\n }\n\n if (0 === e.length) return t([]);\n\n for (var o = e.length, r = 0; r < e.length; r++) {\n i(r, e[r]);\n }\n });\n }, i.resolve = function (t) {\n return t && \"object\" == _typeof(t) && t.constructor === i ? t : new i(function (e) {\n e(t);\n });\n }, i.reject = function (t) {\n return new i(function (e, n) {\n n(t);\n });\n }, i.race = function (t) {\n return new i(function (e, n) {\n for (var i = 0, o = t.length; o > i; i++) {\n t[i].then(e, n);\n }\n });\n }, i._setImmediateFn = function (t) {\n h = t;\n }, i._setUnhandledRejectionFn = function (t) {\n p = t;\n }, \"undefined\" != typeof module && module.exports ? module.exports = i : t.Promise || (t.Promise = i);\n}(this), function () {\n var t = \"object\" == _typeof(window.customElements),\n e = \"function\" == typeof document.registerElement,\n n = t || e;\n\n n || (\n /**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n \"undefined\" == typeof WeakMap && !function () {\n var t = Object.defineProperty,\n e = Date.now() % 1e9,\n n = function n() {\n this.name = \"__st\" + (1e9 * Math.random() >>> 0) + (e++ + \"__\");\n };\n\n n.prototype = {\n set: function set(e, n) {\n var i = e[this.name];\n return i && i[0] === e ? i[1] = n : t(e, this.name, {\n value: [e, n],\n writable: !0\n }), this;\n },\n get: function get(t) {\n var e;\n return (e = t[this.name]) && e[0] === t ? e[1] : void 0;\n },\n \"delete\": function _delete(t) {\n var e = t[this.name];\n return e && e[0] === t ? (e[0] = e[1] = void 0, !0) : !1;\n },\n has: function has(t) {\n var e = t[this.name];\n return e ? e[0] === t : !1;\n }\n }, window.WeakMap = n;\n }(), function (t) {\n function e(t) {\n A.push(t), b || (b = !0, g(i));\n }\n\n function n(t) {\n return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(t) || t;\n }\n\n function i() {\n b = !1;\n var t = A;\n A = [], t.sort(function (t, e) {\n return t.uid_ - e.uid_;\n });\n var e = !1;\n t.forEach(function (t) {\n var n = t.takeRecords();\n o(t), n.length && (t.callback_(n, t), e = !0);\n }), e && i();\n }\n\n function o(t) {\n t.nodes_.forEach(function (e) {\n var n = m.get(e);\n n && n.forEach(function (e) {\n e.observer === t && e.removeTransientObservers();\n });\n });\n }\n\n function r(t, e) {\n for (var n = t; n; n = n.parentNode) {\n var i = m.get(n);\n if (i) for (var o = 0; o < i.length; o++) {\n var r = i[o],\n s = r.options;\n\n if (n === t || s.subtree) {\n var a = e(s);\n a && r.enqueue(a);\n }\n }\n }\n }\n\n function s(t) {\n this.callback_ = t, this.nodes_ = [], this.records_ = [], this.uid_ = ++C;\n }\n\n function a(t, e) {\n this.type = t, this.target = e, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null;\n }\n\n function u(t) {\n var e = new a(t.type, t.target);\n return e.addedNodes = t.addedNodes.slice(), e.removedNodes = t.removedNodes.slice(), e.previousSibling = t.previousSibling, e.nextSibling = t.nextSibling, e.attributeName = t.attributeName, e.attributeNamespace = t.attributeNamespace, e.oldValue = t.oldValue, e;\n }\n\n function c(t, e) {\n return x = new a(t, e);\n }\n\n function l(t) {\n return w ? w : (w = u(x), w.oldValue = t, w);\n }\n\n function h() {\n x = w = void 0;\n }\n\n function p(t) {\n return t === w || t === x;\n }\n\n function d(t, e) {\n return t === e ? t : w && p(t) ? w : null;\n }\n\n function f(t, e, n) {\n this.observer = t, this.target = e, this.options = n, this.transientObservedNodes = [];\n }\n\n if (!t.JsMutationObserver) {\n var g,\n m = new WeakMap();\n if (/Trident|Edge/.test(navigator.userAgent)) g = setTimeout;else if (window.setImmediate) g = window.setImmediate;else {\n var v = [],\n y = String(Math.random());\n window.addEventListener(\"message\", function (t) {\n if (t.data === y) {\n var e = v;\n v = [], e.forEach(function (t) {\n t();\n });\n }\n }), g = function g(t) {\n v.push(t), window.postMessage(y, \"*\");\n };\n }\n var b = !1,\n A = [],\n C = 0;\n s.prototype = {\n observe: function observe(t, e) {\n if (t = n(t), !e.childList && !e.attributes && !e.characterData || e.attributeOldValue && !e.attributes || e.attributeFilter && e.attributeFilter.length && !e.attributes || e.characterDataOldValue && !e.characterData) throw new SyntaxError();\n var i = m.get(t);\n i || m.set(t, i = []);\n\n for (var o, r = 0; r < i.length; r++) {\n if (i[r].observer === this) {\n o = i[r], o.removeListeners(), o.options = e;\n break;\n }\n }\n\n o || (o = new f(this, t, e), i.push(o), this.nodes_.push(t)), o.addListeners();\n },\n disconnect: function disconnect() {\n this.nodes_.forEach(function (t) {\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n var i = e[n];\n\n if (i.observer === this) {\n i.removeListeners(), e.splice(n, 1);\n break;\n }\n }\n }, this), this.records_ = [];\n },\n takeRecords: function takeRecords() {\n var t = this.records_;\n return this.records_ = [], t;\n }\n };\n var x, w;\n f.prototype = {\n enqueue: function enqueue(t) {\n var n = this.observer.records_,\n i = n.length;\n\n if (n.length > 0) {\n var o = n[i - 1],\n r = d(o, t);\n if (r) return void (n[i - 1] = r);\n } else e(this.observer);\n\n n[i] = t;\n },\n addListeners: function addListeners() {\n this.addListeners_(this.target);\n },\n addListeners_: function addListeners_(t) {\n var e = this.options;\n e.attributes && t.addEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.addEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.addEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.addEventListener(\"DOMNodeRemoved\", this, !0);\n },\n removeListeners: function removeListeners() {\n this.removeListeners_(this.target);\n },\n removeListeners_: function removeListeners_(t) {\n var e = this.options;\n e.attributes && t.removeEventListener(\"DOMAttrModified\", this, !0), e.characterData && t.removeEventListener(\"DOMCharacterDataModified\", this, !0), e.childList && t.removeEventListener(\"DOMNodeInserted\", this, !0), (e.childList || e.subtree) && t.removeEventListener(\"DOMNodeRemoved\", this, !0);\n },\n addTransientObserver: function addTransientObserver(t) {\n if (t !== this.target) {\n this.addListeners_(t), this.transientObservedNodes.push(t);\n var e = m.get(t);\n e || m.set(t, e = []), e.push(this);\n }\n },\n removeTransientObservers: function removeTransientObservers() {\n var t = this.transientObservedNodes;\n this.transientObservedNodes = [], t.forEach(function (t) {\n this.removeListeners_(t);\n\n for (var e = m.get(t), n = 0; n < e.length; n++) {\n if (e[n] === this) {\n e.splice(n, 1);\n break;\n }\n }\n }, this);\n },\n handleEvent: function handleEvent(t) {\n switch (t.stopImmediatePropagation(), t.type) {\n case \"DOMAttrModified\":\n var e = t.attrName,\n n = t.relatedNode.namespaceURI,\n i = t.target,\n o = new c(\"attributes\", i);\n o.attributeName = e, o.attributeNamespace = n;\n var s = t.attrChange === MutationEvent.ADDITION ? null : t.prevValue;\n r(i, function (t) {\n return !t.attributes || t.attributeFilter && t.attributeFilter.length && -1 === t.attributeFilter.indexOf(e) && -1 === t.attributeFilter.indexOf(n) ? void 0 : t.attributeOldValue ? l(s) : o;\n });\n break;\n\n case \"DOMCharacterDataModified\":\n var i = t.target,\n o = c(\"characterData\", i),\n s = t.prevValue;\n r(i, function (t) {\n return t.characterData ? t.characterDataOldValue ? l(s) : o : void 0;\n });\n break;\n\n case \"DOMNodeRemoved\":\n this.addTransientObserver(t.target);\n\n case \"DOMNodeInserted\":\n var a,\n u,\n p = t.target;\n \"DOMNodeInserted\" === t.type ? (a = [p], u = []) : (a = [], u = [p]);\n var d = p.previousSibling,\n f = p.nextSibling,\n o = c(\"childList\", t.target.parentNode);\n o.addedNodes = a, o.removedNodes = u, o.previousSibling = d, o.nextSibling = f, r(t.relatedNode, function (t) {\n return t.childList ? o : void 0;\n });\n }\n\n h();\n }\n }, t.JsMutationObserver = s, t.MutationObserver || (t.MutationObserver = s, s._isPolyfilled = !0);\n }\n }(self), function () {\n \"use strict\";\n\n if (!window.performance || !window.performance.now) {\n var t = Date.now();\n window.performance = {\n now: function now() {\n return Date.now() - t;\n }\n };\n }\n\n window.requestAnimationFrame || (window.requestAnimationFrame = function () {\n var t = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;\n return t ? function (e) {\n return t(function () {\n e(performance.now());\n });\n } : function (t) {\n return window.setTimeout(t, 1e3 / 60);\n };\n }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () {\n return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (t) {\n clearTimeout(t);\n };\n }());\n\n var e = function () {\n var t = document.createEvent(\"Event\");\n return t.initEvent(\"foo\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }();\n\n if (!e) {\n var n = Event.prototype.preventDefault;\n\n Event.prototype.preventDefault = function () {\n this.cancelable && (n.call(this), Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n },\n configurable: !0\n }));\n };\n }\n\n var i = /Trident/.test(navigator.userAgent);\n\n if ((!window.CustomEvent || i && \"function\" != typeof window.CustomEvent) && (window.CustomEvent = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"CustomEvent\");\n return n.initCustomEvent(t, Boolean(e.bubbles), Boolean(e.cancelable), e.detail), n;\n }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || i && \"function\" != typeof window.Event) {\n var o = window.Event;\n window.Event = function (t, e) {\n e = e || {};\n var n = document.createEvent(\"Event\");\n return n.initEvent(t, Boolean(e.bubbles), Boolean(e.cancelable)), n;\n }, window.Event.prototype = o.prototype;\n }\n }(window.WebComponents), window.CustomElements = window.CustomElements || {\n flags: {}\n }, function (t) {\n var e = t.flags,\n n = [],\n i = function i(t) {\n n.push(t);\n },\n o = function o() {\n n.forEach(function (e) {\n e(t);\n });\n };\n\n t.addModule = i, t.initializeModules = o, t.hasNative = Boolean(document.registerElement), t.isIE = /Trident/.test(navigator.userAgent), t.useNative = !e.register && t.hasNative && !window.ShadowDOMPolyfill && (!window.HTMLImports || window.HTMLImports.useNative);\n }(window.CustomElements), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n n(t, function (t) {\n return e(t) ? !0 : void i(t, e);\n }), i(t, e);\n }\n\n function n(t, e, i) {\n var o = t.firstElementChild;\n if (!o) for (o = t.firstChild; o && o.nodeType !== Node.ELEMENT_NODE;) {\n o = o.nextSibling;\n }\n\n for (; o;) {\n e(o, i) !== !0 && n(o, e, i), o = o.nextElementSibling;\n }\n\n return null;\n }\n\n function i(t, n) {\n for (var i = t.shadowRoot; i;) {\n e(i, n), i = i.olderShadowRoot;\n }\n }\n\n function o(t, e) {\n r(t, e, []);\n }\n\n function r(t, e, n) {\n if (t = window.wrap(t), !(n.indexOf(t) >= 0)) {\n n.push(t);\n\n for (var i, o = t.querySelectorAll(\"link[rel=\" + s + \"]\"), a = 0, u = o.length; u > a && (i = o[a]); a++) {\n i[\"import\"] && r(i[\"import\"], e, n);\n }\n\n e(t);\n }\n }\n\n var s = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : \"none\";\n t.forDocumentTree = o, t.forSubtree = e;\n }), window.CustomElements.addModule(function (t) {\n function e(t, e) {\n return n(t, e) || i(t, e);\n }\n\n function n(e, n) {\n return t.upgrade(e, n) ? !0 : void (n && s(e));\n }\n\n function i(t, e) {\n b(t, function (t) {\n return n(t, e) ? !0 : void 0;\n });\n }\n\n function o(t) {\n w.push(t), x || (x = !0, setTimeout(r));\n }\n\n function r() {\n x = !1;\n\n for (var t, e = w, n = 0, i = e.length; i > n && (t = e[n]); n++) {\n t();\n }\n\n w = [];\n }\n\n function s(t) {\n C ? o(function () {\n a(t);\n }) : a(t);\n }\n\n function a(t) {\n t.__upgraded__ && !t.__attached && (t.__attached = !0, t.attachedCallback && t.attachedCallback());\n }\n\n function u(t) {\n c(t), b(t, function (t) {\n c(t);\n });\n }\n\n function c(t) {\n C ? o(function () {\n l(t);\n }) : l(t);\n }\n\n function l(t) {\n t.__upgraded__ && t.__attached && (t.__attached = !1, t.detachedCallback && t.detachedCallback());\n }\n\n function h(t) {\n for (var e = t, n = window.wrap(document); e;) {\n if (e == n) return !0;\n e = e.parentNode || e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host;\n }\n }\n\n function p(t) {\n if (t.shadowRoot && !t.shadowRoot.__watched) {\n y.dom && console.log(\"watching shadow-root for: \", t.localName);\n\n for (var e = t.shadowRoot; e;) {\n g(e), e = e.olderShadowRoot;\n }\n }\n }\n\n function d(t, n) {\n if (y.dom) {\n var i = n[0];\n\n if (i && \"childList\" === i.type && i.addedNodes && i.addedNodes) {\n for (var o = i.addedNodes[0]; o && o !== document && !o.host;) {\n o = o.parentNode;\n }\n\n var r = o && (o.URL || o._URL || o.host && o.host.localName) || \"\";\n r = r.split(\"/?\").shift().split(\"/\").pop();\n }\n\n console.group(\"mutations (%d) [%s]\", n.length, r || \"\");\n }\n\n var s = h(t);\n n.forEach(function (t) {\n \"childList\" === t.type && (E(t.addedNodes, function (t) {\n t.localName && e(t, s);\n }), E(t.removedNodes, function (t) {\n t.localName && u(t);\n }));\n }), y.dom && console.groupEnd();\n }\n\n function f(t) {\n for (t = window.wrap(t), t || (t = window.wrap(document)); t.parentNode;) {\n t = t.parentNode;\n }\n\n var e = t.__observer;\n e && (d(t, e.takeRecords()), r());\n }\n\n function g(t) {\n if (!t.__observer) {\n var e = new MutationObserver(d.bind(this, t));\n e.observe(t, {\n childList: !0,\n subtree: !0\n }), t.__observer = e;\n }\n }\n\n function m(t) {\n t = window.wrap(t), y.dom && console.group(\"upgradeDocument: \", t.baseURI.split(\"/\").pop());\n var n = t === window.wrap(document);\n e(t, n), g(t), y.dom && console.groupEnd();\n }\n\n function v(t) {\n A(t, m);\n }\n\n var y = t.flags,\n b = t.forSubtree,\n A = t.forDocumentTree,\n C = window.MutationObserver._isPolyfilled && y[\"throttle-attached\"];\n t.hasPolyfillMutations = C, t.hasThrottledAttached = C;\n var x = !1,\n w = [],\n E = Array.prototype.forEach.call.bind(Array.prototype.forEach),\n S = Element.prototype.createShadowRoot;\n S && (Element.prototype.createShadowRoot = function () {\n var t = S.call(this);\n return window.CustomElements.watchShadow(this), t;\n }), t.watchShadow = p, t.upgradeDocumentTree = v, t.upgradeDocument = m, t.upgradeSubtree = i, t.upgradeAll = e, t.attached = s, t.takeRecords = f;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n if (\"template\" === e.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate && HTMLTemplateElement.decorate(e), !e.__upgraded__ && e.nodeType === Node.ELEMENT_NODE) {\n var o = e.getAttribute(\"is\"),\n r = t.getRegisteredDefinition(e.localName) || t.getRegisteredDefinition(o);\n if (r && (o && r.tag == e.localName || !o && !r[\"extends\"])) return n(e, r, i);\n }\n }\n\n function n(e, n, o) {\n return s.upgrade && console.group(\"upgrade:\", e.localName), n.is && e.setAttribute(\"is\", n.is), i(e, n), e.__upgraded__ = !0, r(e), o && t.attached(e), t.upgradeSubtree(e, o), s.upgrade && console.groupEnd(), e;\n }\n\n function i(t, e) {\n Object.__proto__ ? t.__proto__ = e.prototype : (o(t, e.prototype, e[\"native\"]), t.__proto__ = e.prototype);\n }\n\n function o(t, e, n) {\n for (var i = {}, o = e; o !== n && o !== HTMLElement.prototype;) {\n for (var r, s = Object.getOwnPropertyNames(o), a = 0; r = s[a]; a++) {\n i[r] || (Object.defineProperty(t, r, Object.getOwnPropertyDescriptor(o, r)), i[r] = 1);\n }\n\n o = Object.getPrototypeOf(o);\n }\n }\n\n function r(t) {\n t.createdCallback && t.createdCallback();\n }\n\n var s = t.flags;\n t.upgrade = e, t.upgradeWithDefinition = n, t.implementPrototype = i;\n }), window.CustomElements.addModule(function (t) {\n function e(e, i) {\n var u = i || {};\n if (!e) throw new Error(\"document.registerElement: first argument `name` must not be empty\");\n if (e.indexOf(\"-\") < 0) throw new Error(\"document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '\" + String(e) + \"'.\");\n if (o(e)) throw new Error(\"Failed to execute 'registerElement' on 'Document': Registration failed for type '\" + String(e) + \"'. The type name is invalid.\");\n if (c(e)) throw new Error(\"DuplicateDefinitionError: a type with name '\" + String(e) + \"' is already registered\");\n return u.prototype || (u.prototype = Object.create(HTMLElement.prototype)), u.__name = e.toLowerCase(), u[\"extends\"] && (u[\"extends\"] = u[\"extends\"].toLowerCase()), u.lifecycle = u.lifecycle || {}, u.ancestry = r(u[\"extends\"]), s(u), a(u), n(u.prototype), l(u.__name, u), u.ctor = h(u), u.ctor.prototype = u.prototype, u.prototype.constructor = u.ctor, t.ready && m(document), u.ctor;\n }\n\n function n(t) {\n if (!t.setAttribute._polyfilled) {\n var e = t.setAttribute;\n\n t.setAttribute = function (t, n) {\n i.call(this, t, n, e);\n };\n\n var n = t.removeAttribute;\n t.removeAttribute = function (t) {\n i.call(this, t, null, n);\n }, t.setAttribute._polyfilled = !0;\n }\n }\n\n function i(t, e, n) {\n t = t.toLowerCase();\n var i = this.getAttribute(t);\n n.apply(this, arguments);\n var o = this.getAttribute(t);\n this.attributeChangedCallback && o !== i && this.attributeChangedCallback(t, i, o);\n }\n\n function o(t) {\n for (var e = 0; e < C.length; e++) {\n if (t === C[e]) return !0;\n }\n }\n\n function r(t) {\n var e = c(t);\n return e ? r(e[\"extends\"]).concat([e]) : [];\n }\n\n function s(t) {\n for (var e, n = t[\"extends\"], i = 0; e = t.ancestry[i]; i++) {\n n = e.is && e.tag;\n }\n\n t.tag = n || t.__name, n && (t.is = t.__name);\n }\n\n function a(t) {\n if (!Object.__proto__) {\n var e = HTMLElement.prototype;\n\n if (t.is) {\n var n = document.createElement(t.tag);\n e = Object.getPrototypeOf(n);\n }\n\n for (var i, o = t.prototype, r = !1; o;) {\n o == e && (r = !0), i = Object.getPrototypeOf(o), i && (o.__proto__ = i), o = i;\n }\n\n r || console.warn(t.tag + \" prototype not found in prototype chain for \" + t.is), t[\"native\"] = e;\n }\n }\n\n function u(t) {\n return y(E(t.tag), t);\n }\n\n function c(t) {\n return t ? x[t.toLowerCase()] : void 0;\n }\n\n function l(t, e) {\n x[t] = e;\n }\n\n function h(t) {\n return function () {\n return u(t);\n };\n }\n\n function p(t, e, n) {\n return t === w ? d(e, n) : S(t, e);\n }\n\n function d(t, e) {\n t && (t = t.toLowerCase()), e && (e = e.toLowerCase());\n var n = c(e || t);\n\n if (n) {\n if (t == n.tag && e == n.is) return new n.ctor();\n if (!e && !n.is) return new n.ctor();\n }\n\n var i;\n return e ? (i = d(t), i.setAttribute(\"is\", e), i) : (i = E(t), t.indexOf(\"-\") >= 0 && b(i, HTMLElement), i);\n }\n\n function f(t, e) {\n var n = t[e];\n\n t[e] = function () {\n var t = n.apply(this, arguments);\n return v(t), t;\n };\n }\n\n var g,\n m = (t.isIE, t.upgradeDocumentTree),\n v = t.upgradeAll,\n y = t.upgradeWithDefinition,\n b = t.implementPrototype,\n A = t.useNative,\n C = [\"annotation-xml\", \"color-profile\", \"font-face\", \"font-face-src\", \"font-face-uri\", \"font-face-format\", \"font-face-name\", \"missing-glyph\"],\n x = {},\n w = \"http://www.w3.org/1999/xhtml\",\n E = document.createElement.bind(document),\n S = document.createElementNS.bind(document);\n g = Object.__proto__ || A ? function (t, e) {\n return t instanceof e;\n } : function (t, e) {\n if (t instanceof e) return !0;\n\n for (var n = t; n;) {\n if (n === e.prototype) return !0;\n n = n.__proto__;\n }\n\n return !1;\n }, f(Node.prototype, \"cloneNode\"), f(document, \"importNode\"), document.registerElement = e, document.createElement = d, document.createElementNS = p, t.registry = x, t[\"instanceof\"] = g, t.reservedTagList = C, t.getRegisteredDefinition = c, document.register = document.registerElement;\n }), function (t) {\n function e() {\n r(window.wrap(document)), window.CustomElements.ready = !0;\n\n var t = window.requestAnimationFrame || function (t) {\n setTimeout(t, 16);\n };\n\n t(function () {\n setTimeout(function () {\n window.CustomElements.readyTime = Date.now(), window.HTMLImports && (window.CustomElements.elapsed = window.CustomElements.readyTime - window.HTMLImports.readyTime), document.dispatchEvent(new CustomEvent(\"WebComponentsReady\", {\n bubbles: !0\n }));\n });\n });\n }\n\n var n = t.useNative,\n i = t.initializeModules;\n\n if (t.isIE, n) {\n var o = function o() {};\n\n t.watchShadow = o, t.upgrade = o, t.upgradeAll = o, t.upgradeDocumentTree = o, t.upgradeSubtree = o, t.takeRecords = o, t[\"instanceof\"] = function (t, e) {\n return t instanceof e;\n };\n } else i();\n\n var r = t.upgradeDocumentTree,\n s = t.upgradeDocument;\n if (window.wrap || (window.ShadowDOMPolyfill ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) : window.wrap = window.unwrap = function (t) {\n return t;\n }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (t) {\n t[\"import\"] && s(wrap(t[\"import\"]));\n }), \"complete\" === document.readyState || t.flags.eager) e();else if (\"interactive\" !== document.readyState || window.attachEvent || window.HTMLImports && !window.HTMLImports.ready) {\n var a = window.HTMLImports && !window.HTMLImports.ready ? \"HTMLImportsLoaded\" : \"DOMContentLoaded\";\n window.addEventListener(a, e);\n } else e();\n }(window.CustomElements));\n}.call(this), function () {}.call(this), function () {\n var t = this;\n (function () {\n (function () {\n this.Trix = {\n VERSION: \"1.2.3\",\n ZERO_WIDTH_SPACE: \"\\uFEFF\",\n NON_BREAKING_SPACE: \"\\xa0\",\n OBJECT_REPLACEMENT_CHARACTER: \"\\uFFFC\",\n browser: {\n composesExistingText: /Android.*Chrome/.test(navigator.userAgent),\n forcesObjectResizing: /Trident.*rv:11/.test(navigator.userAgent),\n supportsInputEvents: function () {\n var t, e, n, i;\n if (\"undefined\" == typeof InputEvent) return !1;\n\n for (i = [\"data\", \"getTargetRanges\", \"inputType\"], t = 0, e = i.length; e > t; t++) {\n if (n = i[t], !(n in InputEvent.prototype)) return !1;\n }\n\n return !0;\n }()\n },\n config: {}\n };\n }).call(this);\n }).call(t);\n var e = t.Trix;\n (function () {\n (function () {\n e.BasicObject = function () {\n function t() {}\n\n var e, n, i;\n return t.proxyMethod = function (t) {\n var i, o, r, s, a;\n return r = n(t), i = r.name, s = r.toMethod, a = r.toProperty, o = r.optional, this.prototype[i] = function () {\n var t, n;\n return t = null != s ? o ? \"function\" == typeof this[s] ? this[s]() : void 0 : this[s]() : null != a ? this[a] : void 0, o ? (n = null != t ? t[i] : void 0, null != n ? e.call(n, t, arguments) : void 0) : (n = t[i], e.call(n, t, arguments));\n };\n }, n = function n(t) {\n var e, n;\n if (!(n = t.match(i))) throw new Error(\"can't parse @proxyMethod expression: \" + t);\n return e = {\n name: n[4]\n }, null != n[2] ? e.toMethod = n[1] : e.toProperty = n[1], null != n[3] && (e.optional = !0), e;\n }, e = Function.prototype.apply, i = /^(.+?)(\\(\\))?(\\?)?\\.(.+?)$/, t;\n }();\n }).call(this), function () {\n var t = function t(_t, e) {\n function i() {\n this.constructor = _t;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t.prototype = new i(), _t.__super__ = e.prototype, _t;\n },\n n = {}.hasOwnProperty;\n\n e.Object = function (n) {\n function i() {\n this.id = ++o;\n }\n\n var o;\n return t(i, n), o = 0, i.fromJSONString = function (t) {\n return this.fromJSON(JSON.parse(t));\n }, i.prototype.hasSameConstructorAs = function (t) {\n return this.constructor === (null != t ? t.constructor : void 0);\n }, i.prototype.isEqualTo = function (t) {\n return this === t;\n }, i.prototype.inspect = function () {\n var t, e, n;\n return t = function () {\n var t, i, o;\n i = null != (t = this.contentsForInspection()) ? t : {}, o = [];\n\n for (e in i) {\n n = i[e], o.push(e + \"=\" + n);\n }\n\n return o;\n }.call(this), \"#<\" + this.constructor.name + \":\" + this.id + (t.length ? \" \" + t.join(\", \") : \"\") + \">\";\n }, i.prototype.contentsForInspection = function () {}, i.prototype.toJSONString = function () {\n return JSON.stringify(this);\n }, i.prototype.toUTF16String = function () {\n return e.UTF16String.box(this);\n }, i.prototype.getCacheKey = function () {\n return this.id.toString();\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n e.extend = function (t) {\n var e, n;\n\n for (e in t) {\n n = t[e], this[e] = n;\n }\n\n return this;\n };\n }.call(this), function () {\n e.extend({\n defer: function defer(t) {\n return setTimeout(t, 1);\n }\n });\n }.call(this), function () {\n var t, n;\n e.extend({\n normalizeSpaces: function normalizeSpaces(t) {\n return t.replace(RegExp(\"\" + e.ZERO_WIDTH_SPACE, \"g\"), \"\").replace(RegExp(\"\" + e.NON_BREAKING_SPACE, \"g\"), \" \");\n },\n normalizeNewlines: function normalizeNewlines(t) {\n return t.replace(/\\r\\n/g, \"\\n\");\n },\n breakableWhitespacePattern: RegExp(\"[^\\\\S\" + e.NON_BREAKING_SPACE + \"]\"),\n squishBreakableWhitespace: function squishBreakableWhitespace(t) {\n return t.replace(RegExp(\"\" + e.breakableWhitespacePattern.source, \"g\"), \" \").replace(/\\ {2,}/g, \" \");\n },\n escapeHTML: function escapeHTML(t) {\n var e;\n return e = document.createElement(\"div\"), e.textContent = t, e.innerHTML;\n },\n summarizeStringChange: function summarizeStringChange(t, i) {\n var o, r, s, a;\n return t = e.UTF16String.box(t), i = e.UTF16String.box(i), i.length < t.length ? (r = n(t, i), a = r[0], o = r[1]) : (s = n(i, t), o = s[0], a = s[1]), {\n added: o,\n removed: a\n };\n }\n }), n = function n(_n, i) {\n var o, r, s, a, u;\n return _n.isEqualTo(i) ? [\"\", \"\"] : (r = t(_n, i), a = r.utf16String.length, s = a ? (u = r.offset, r, o = _n.codepoints.slice(0, u).concat(_n.codepoints.slice(u + a)), t(i, e.UTF16String.fromCodepoints(o))) : t(i, _n), [r.utf16String.toString(), s.utf16String.toString()]);\n }, t = function t(_t2, e) {\n var n, i, o;\n\n for (n = 0, i = _t2.length, o = e.length; i > n && _t2.charAt(n).isEqualTo(e.charAt(n));) {\n n++;\n }\n\n for (; i > n + 1 && _t2.charAt(i - 1).isEqualTo(e.charAt(o - 1));) {\n i--, o--;\n }\n\n return {\n utf16String: _t2.slice(n, i),\n offset: n\n };\n };\n }.call(this), function () {\n e.extend({\n copyObject: function copyObject(t) {\n var e, n, i;\n null == t && (t = {}), n = {};\n\n for (e in t) {\n i = t[e], n[e] = i;\n }\n\n return n;\n },\n objectsAreEqual: function objectsAreEqual(t, e) {\n var n, i;\n if (null == t && (t = {}), null == e && (e = {}), Object.keys(t).length !== Object.keys(e).length) return !1;\n\n for (n in t) {\n if (i = t[n], i !== e[n]) return !1;\n }\n\n return !0;\n }\n });\n }.call(this), function () {\n var t = [].slice;\n e.extend({\n arraysAreEqual: function arraysAreEqual(t, e) {\n var n, i, o, r;\n if (null == t && (t = []), null == e && (e = []), t.length !== e.length) return !1;\n\n for (i = n = 0, o = t.length; o > n; i = ++n) {\n if (r = t[i], r !== e[i]) return !1;\n }\n\n return !0;\n },\n arrayStartsWith: function arrayStartsWith(t, n) {\n return null == t && (t = []), null == n && (n = []), e.arraysAreEqual(t.slice(0, n.length), n);\n },\n spliceArray: function spliceArray() {\n var e, n, i;\n return n = arguments[0], e = 2 <= arguments.length ? t.call(arguments, 1) : [], i = n.slice(0), i.splice.apply(i, e), i;\n },\n summarizeArrayChange: function summarizeArrayChange(t, e) {\n var n, i, o, r, s, a, u, c, l, h, p;\n\n for (null == t && (t = []), null == e && (e = []), n = [], h = [], o = new Set(), r = 0, u = t.length; u > r; r++) {\n p = t[r], o.add(p);\n }\n\n for (i = new Set(), s = 0, c = e.length; c > s; s++) {\n p = e[s], i.add(p), o.has(p) || n.push(p);\n }\n\n for (a = 0, l = t.length; l > a; a++) {\n p = t[a], i.has(p) || h.push(p);\n }\n\n return {\n added: n,\n removed: h\n };\n }\n });\n }.call(this), function () {\n var t, n, i, o;\n t = null, n = null, o = null, i = null, e.extend({\n getAllAttributeNames: function getAllAttributeNames() {\n return null != t ? t : t = e.getTextAttributeNames().concat(e.getBlockAttributeNames());\n },\n getBlockConfig: function getBlockConfig(t) {\n return e.config.blockAttributes[t];\n },\n getBlockAttributeNames: function getBlockAttributeNames() {\n return null != n ? n : n = Object.keys(e.config.blockAttributes);\n },\n getTextConfig: function getTextConfig(t) {\n return e.config.textAttributes[t];\n },\n getTextAttributeNames: function getTextAttributeNames() {\n return null != o ? o : o = Object.keys(e.config.textAttributes);\n },\n getListAttributeNames: function getListAttributeNames() {\n var t, n;\n return null != i ? i : i = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].listAttribute, null != n && o.push(n);\n }\n\n return o;\n }();\n }\n });\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = document.documentElement, n = null != (i = null != (o = null != (r = t.matchesSelector) ? r : t.webkitMatchesSelector) ? o : t.msMatchesSelector) ? i : t.mozMatchesSelector, e.extend({\n handleEvent: function handleEvent(n, i) {\n var o, r, _s, a, u, c, l, h, p, d, f, g;\n\n return h = null != i ? i : {}, c = h.onElement, u = h.matchingSelector, g = h.withCallback, a = h.inPhase, l = h.preventDefault, d = h.times, r = null != c ? c : t, p = u, o = g, f = \"capturing\" === a, _s = function s(t) {\n var n;\n return null != d && 0 === --d && _s.destroy(), n = e.findClosestElementFromNode(t.target, {\n matchingSelector: p\n }), null != n && (null != g && g.call(n, t, n), l) ? t.preventDefault() : void 0;\n }, _s.destroy = function () {\n return r.removeEventListener(n, _s, f);\n }, r.addEventListener(n, _s, f), _s;\n },\n handleEventOnce: function handleEventOnce(t, n) {\n return null == n && (n = {}), n.times = 1, e.handleEvent(t, n);\n },\n triggerEvent: function triggerEvent(n, i) {\n var o, r, s, a, u, c, l;\n return l = null != i ? i : {}, c = l.onElement, r = l.bubbles, s = l.cancelable, o = l.attributes, a = null != c ? c : t, r = r !== !1, s = s !== !1, u = document.createEvent(\"Events\"), u.initEvent(n, r, s), null != o && e.extend.call(u, o), a.dispatchEvent(u);\n },\n elementMatchesSelector: function elementMatchesSelector(t, e) {\n return 1 === (null != t ? t.nodeType : void 0) ? n.call(t, e) : void 0;\n },\n findClosestElementFromNode: function findClosestElementFromNode(t, n) {\n var i, o, r;\n\n for (o = null != n ? n : {}, i = o.matchingSelector, r = o.untilNode; null != t && t.nodeType !== Node.ELEMENT_NODE;) {\n t = t.parentNode;\n }\n\n if (null != t) {\n if (null == i) return t;\n if (t.closest && null == r) return t.closest(i);\n\n for (; t && t !== r;) {\n if (e.elementMatchesSelector(t, i)) return t;\n t = t.parentNode;\n }\n }\n },\n findInnerElement: function findInnerElement(t) {\n for (; null != t ? t.firstElementChild : void 0;) {\n t = t.firstElementChild;\n }\n\n return t;\n },\n innerElementIsActive: function innerElementIsActive(t) {\n return document.activeElement !== t && e.elementContainsNode(t, document.activeElement);\n },\n elementContainsNode: function elementContainsNode(t, e) {\n if (t && e) for (; e;) {\n if (e === t) return !0;\n e = e.parentNode;\n }\n },\n findNodeFromContainerAndOffset: function findNodeFromContainerAndOffset(t, e) {\n var n;\n if (t) return t.nodeType === Node.TEXT_NODE ? t : 0 === e ? null != (n = t.firstChild) ? n : t : t.childNodes.item(e - 1);\n },\n findElementFromContainerAndOffset: function findElementFromContainerAndOffset(t, n) {\n var i;\n return i = e.findNodeFromContainerAndOffset(t, n), e.findClosestElementFromNode(i);\n },\n findChildIndexOfNode: function findChildIndexOfNode(t) {\n var e;\n\n if (null != t ? t.parentNode : void 0) {\n for (e = 0; t = t.previousSibling;) {\n e++;\n }\n\n return e;\n }\n },\n removeNode: function removeNode(t) {\n var e;\n return null != t && null != (e = t.parentNode) ? e.removeChild(t) : void 0;\n },\n walkTree: function walkTree(t, e) {\n var n, i, o, r, s;\n return o = null != e ? e : {}, i = o.onlyNodesOfType, r = o.usingFilter, n = o.expandEntityReferences, s = function () {\n switch (i) {\n case \"element\":\n return NodeFilter.SHOW_ELEMENT;\n\n case \"text\":\n return NodeFilter.SHOW_TEXT;\n\n case \"comment\":\n return NodeFilter.SHOW_COMMENT;\n\n default:\n return NodeFilter.SHOW_ALL;\n }\n }(), document.createTreeWalker(t, s, null != r ? r : null, n === !0);\n },\n tagName: function tagName(t) {\n var e;\n return null != t && null != (e = t.tagName) ? e.toLowerCase() : void 0;\n },\n makeElement: function makeElement(t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n if (null == e && (e = {}), \"object\" == _typeof(t) ? (e = t, t = e.tagName) : e = {\n attributes: e\n }, i = document.createElement(t), null != e.editable && (null == e.attributes && (e.attributes = {}), e.attributes.contenteditable = e.editable), e.attributes) {\n a = e.attributes;\n\n for (r in a) {\n h = a[r], i.setAttribute(r, h);\n }\n }\n\n if (e.style) {\n u = e.style;\n\n for (r in u) {\n h = u[r], i.style[r] = h;\n }\n }\n\n if (e.data) {\n c = e.data;\n\n for (r in c) {\n h = c[r], i.dataset[r] = h;\n }\n }\n\n if (e.className) for (l = e.className.split(\" \"), o = 0, s = l.length; s > o; o++) {\n n = l[o], i.classList.add(n);\n }\n return e.textContent && (i.textContent = e.textContent), i;\n },\n getBlockTagNames: function getBlockTagNames() {\n var t, n;\n return null != e.blockTagNames ? e.blockTagNames : e.blockTagNames = function () {\n var i, o;\n i = e.config.blockAttributes, o = [];\n\n for (t in i) {\n n = i[t].tagName, n && o.push(n);\n }\n\n return o;\n }();\n },\n nodeIsBlockContainer: function nodeIsBlockContainer(t) {\n return e.nodeIsBlockStartComment(null != t ? t.firstChild : void 0);\n },\n nodeProbablyIsBlockContainer: function nodeProbablyIsBlockContainer(t) {\n var n, i;\n return n = e.tagName(t), s.call(e.getBlockTagNames(), n) >= 0 && (i = e.tagName(t.firstChild), s.call(e.getBlockTagNames(), i) < 0);\n },\n nodeIsBlockStart: function nodeIsBlockStart(t, n) {\n var i;\n return i = (null != n ? n : {\n strict: !0\n }).strict, i ? e.nodeIsBlockStartComment(t) : e.nodeIsBlockStartComment(t) || !e.nodeIsBlockStartComment(t.firstChild) && e.nodeProbablyIsBlockContainer(t);\n },\n nodeIsBlockStartComment: function nodeIsBlockStartComment(t) {\n return e.nodeIsCommentNode(t) && \"block\" === (null != t ? t.data : void 0);\n },\n nodeIsCommentNode: function nodeIsCommentNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.COMMENT_NODE;\n },\n nodeIsCursorTarget: function nodeIsCursorTarget(t, n) {\n var i;\n return i = (null != n ? n : {}).name, t ? e.nodeIsTextNode(t) ? t.data === e.ZERO_WIDTH_SPACE ? i ? t.parentNode.dataset.trixCursorTarget === i : !0 : void 0 : e.nodeIsCursorTarget(t.firstChild) : void 0;\n },\n nodeIsAttachmentElement: function nodeIsAttachmentElement(t) {\n return e.elementMatchesSelector(t, e.AttachmentView.attachmentSelector);\n },\n nodeIsEmptyTextNode: function nodeIsEmptyTextNode(t) {\n return e.nodeIsTextNode(t) && \"\" === (null != t ? t.data : void 0);\n },\n nodeIsTextNode: function nodeIsTextNode(t) {\n return (null != t ? t.nodeType : void 0) === Node.TEXT_NODE;\n }\n });\n }.call(this), function () {\n var t, n, i, o, r;\n t = e.copyObject, o = e.objectsAreEqual, e.extend({\n normalizeRange: i = function i(t) {\n var e;\n if (null != t) return Array.isArray(t) || (t = [t, t]), [n(t[0]), n(null != (e = t[1]) ? e : t[0])];\n },\n rangeIsCollapsed: function rangeIsCollapsed(t) {\n var e, n, o;\n if (null != t) return n = i(t), o = n[0], e = n[1], r(o, e);\n },\n rangesAreEqual: function rangesAreEqual(t, e) {\n var n, o, s, a, u, c;\n if (null != t && null != e) return s = i(t), o = s[0], n = s[1], a = i(e), c = a[0], u = a[1], r(o, c) && r(n, u);\n }\n }), n = function n(e) {\n return \"number\" == typeof e ? e : t(e);\n }, r = function r(t, e) {\n return \"number\" == typeof t ? t === e : o(t, e);\n };\n }.call(this), function () {\n var t, n, i, o, r, s, a;\n e.registerElement = function (t, e) {\n var n, i;\n return null == e && (e = {}), t = t.toLowerCase(), e = a(e), i = s(e), (n = i.defaultCSS) && (delete i.defaultCSS, o(n, t)), r(t, i);\n }, o = function o(t, e) {\n var n;\n return n = i(e), n.textContent = t.replace(/%t/g, e);\n }, i = function i(e) {\n var n, i;\n return n = document.createElement(\"style\"), n.setAttribute(\"type\", \"text/css\"), n.setAttribute(\"data-tag-name\", e.toLowerCase()), (i = t()) && n.setAttribute(\"nonce\", i), document.head.insertBefore(n, document.head.firstChild), n;\n }, t = function t() {\n var t;\n return (t = n(\"trix-csp-nonce\") || n(\"csp-nonce\")) ? t.getAttribute(\"content\") : void 0;\n }, n = function n(t) {\n return document.head.querySelector(\"meta[name=\" + t + \"]\");\n }, s = function s(t) {\n var e, n, i;\n n = {};\n\n for (e in t) {\n i = t[e], n[e] = \"function\" == typeof i ? {\n value: i\n } : i;\n }\n\n return n;\n }, a = function () {\n var t;\n return t = function t(_t3) {\n var e, n, i, o, r;\n\n for (e = {}, r = [\"initialize\", \"connect\", \"disconnect\"], n = 0, o = r.length; o > n; n++) {\n i = r[n], e[i] = _t3[i], delete _t3[i];\n }\n\n return e;\n }, window.customElements ? function (e) {\n var n, i, o, r, s;\n return s = t(e), o = s.initialize, n = s.connect, i = s.disconnect, o && (r = n, n = function n() {\n return this.initialized || (this.initialized = !0, o.call(this)), null != r ? r.call(this) : void 0;\n }), n && (e.connectedCallback = n), i && (e.disconnectedCallback = i), e;\n } : function (e) {\n var n, i, o, r;\n return r = t(e), o = r.initialize, n = r.connect, i = r.disconnect, o && (e.createdCallback = o), n && (e.attachedCallback = n), i && (e.detachedCallback = i), e;\n };\n }(), r = function () {\n return window.customElements ? function (t, e) {\n var _n2;\n\n return _n2 = function n() {\n return \"object\" == (typeof Reflect === \"undefined\" ? \"undefined\" : _typeof(Reflect)) ? Reflect.construct(HTMLElement, [], _n2) : HTMLElement.apply(this);\n }, Object.setPrototypeOf(_n2.prototype, HTMLElement.prototype), Object.setPrototypeOf(_n2, HTMLElement), Object.defineProperties(_n2.prototype, e), window.customElements.define(t, _n2), _n2;\n } : function (t, e) {\n var n, i;\n return i = Object.create(HTMLElement.prototype, e), n = document.registerElement(t, {\n prototype: i\n }), Object.defineProperty(i, \"constructor\", {\n value: n\n }), n;\n };\n }();\n }.call(this), function () {\n var t, n;\n e.extend({\n getDOMSelection: function getDOMSelection() {\n var t;\n return t = window.getSelection(), t.rangeCount > 0 ? t : void 0;\n },\n getDOMRange: function getDOMRange() {\n var n, i;\n return (n = null != (i = e.getDOMSelection()) ? i.getRangeAt(0) : void 0) && !t(n) ? n : void 0;\n },\n setDOMRange: function setDOMRange(t) {\n var n;\n return n = window.getSelection(), n.removeAllRanges(), n.addRange(t), e.selectionChangeObserver.update();\n }\n }), t = function t(_t4) {\n return n(_t4.startContainer) || n(_t4.endContainer);\n }, n = function n(t) {\n return !Object.getPrototypeOf(t);\n };\n }.call(this), function () {\n var t;\n t = {\n \"application/x-trix-feature-detection\": \"test\"\n }, e.extend({\n dataTransferIsPlainText: function dataTransferIsPlainText(t) {\n var e, n, i;\n return i = t.getData(\"text/plain\"), n = t.getData(\"text/html\"), i && n ? (e = new DOMParser().parseFromString(n, \"text/html\").body, e.textContent === i ? !e.querySelector(\"*\") : void 0) : null != i ? i.length : void 0;\n },\n dataTransferIsWritable: function dataTransferIsWritable(e) {\n var n, i;\n\n if (null != (null != e ? e.setData : void 0)) {\n for (n in t) {\n if (i = t[n], !function () {\n try {\n return e.setData(n, i), e.getData(n) === i;\n } catch (t) {}\n }()) return;\n }\n\n return !0;\n }\n },\n keyEventIsKeyboardCommand: function () {\n return /Mac|^iP/.test(navigator.platform) ? function (t) {\n return t.metaKey;\n } : function (t) {\n return t.ctrlKey;\n };\n }()\n });\n }.call(this), function () {}.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.arraysAreEqual, e.Hash = function (i) {\n function o(t) {\n null == t && (t = {}), this.values = s(t), o.__super__.constructor.apply(this, arguments);\n }\n\n var r, s, a, u, c;\n return n(o, i), o.fromCommonAttributesOfObjects = function (t) {\n var e, n, i, o, s, a;\n if (null == t && (t = []), !t.length) return new this();\n\n for (e = r(t[0]), i = e.getKeys(), a = t.slice(1), n = 0, o = a.length; o > n; n++) {\n s = a[n], i = e.getKeysCommonToHash(r(s)), e = e.slice(i);\n }\n\n return e;\n }, o.box = function (t) {\n return r(t);\n }, o.prototype.add = function (t, e) {\n return this.merge(u(t, e));\n }, o.prototype.remove = function (t) {\n return new e.Hash(s(this.values, t));\n }, o.prototype.get = function (t) {\n return this.values[t];\n }, o.prototype.has = function (t) {\n return t in this.values;\n }, o.prototype.merge = function (t) {\n return new e.Hash(a(this.values, c(t)));\n }, o.prototype.slice = function (t) {\n var n, i, o, r;\n\n for (r = {}, n = 0, o = t.length; o > n; n++) {\n i = t[n], this.has(i) && (r[i] = this.values[i]);\n }\n\n return new e.Hash(r);\n }, o.prototype.getKeys = function () {\n return Object.keys(this.values);\n }, o.prototype.getKeysCommonToHash = function (t) {\n var e, n, i, o, s;\n\n for (t = r(t), o = this.getKeys(), s = [], e = 0, i = o.length; i > e; e++) {\n n = o[e], this.values[n] === t.values[n] && s.push(n);\n }\n\n return s;\n }, o.prototype.isEqualTo = function (e) {\n return t(this.toArray(), r(e).toArray());\n }, o.prototype.isEmpty = function () {\n return 0 === this.getKeys().length;\n }, o.prototype.toArray = function () {\n var t, e, n;\n return (null != this.array ? this.array : this.array = function () {\n var i;\n e = [], i = this.values;\n\n for (t in i) {\n n = i[t], e.push(t, n);\n }\n\n return e;\n }.call(this)).slice(0);\n }, o.prototype.toObject = function () {\n return s(this.values);\n }, o.prototype.toJSON = function () {\n return this.toObject();\n }, o.prototype.contentsForInspection = function () {\n return {\n values: JSON.stringify(this.values)\n };\n }, u = function u(t, e) {\n var n;\n return n = {}, n[t] = e, n;\n }, a = function a(t, e) {\n var n, i, o;\n i = s(t);\n\n for (n in e) {\n o = e[n], i[n] = o;\n }\n\n return i;\n }, s = function s(t, e) {\n var n, i, o, r, s;\n\n for (r = {}, s = Object.keys(t).sort(), n = 0, o = s.length; o > n; n++) {\n i = s[n], i !== e && (r[i] = t[i]);\n }\n\n return r;\n }, r = function r(t) {\n return t instanceof e.Hash ? t : new e.Hash(t);\n }, c = function c(t) {\n return t instanceof e.Hash ? t.values : t;\n }, o;\n }(e.Object);\n }.call(this), function () {\n e.ObjectGroup = function () {\n function t(t, e) {\n var n, i;\n this.objects = null != t ? t : [], i = e.depth, n = e.asTree, n && (this.depth = i, this.objects = this.constructor.groupObjects(this.objects, {\n asTree: n,\n depth: this.depth + 1\n }));\n }\n\n return t.groupObjects = function (t, e) {\n var n, i, o, r, s, a, u, c, l;\n\n for (null == t && (t = []), l = null != e ? e : {}, o = l.depth, n = l.asTree, n && null == o && (o = 0), c = [], s = 0, a = t.length; a > s; s++) {\n if (u = t[s], r) {\n if ((\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) && (\"function\" == typeof (i = r[r.length - 1]).canBeGroupedWith ? i.canBeGroupedWith(u, o) : void 0)) {\n r.push(u);\n continue;\n }\n\n c.push(new this(r, {\n depth: o,\n asTree: n\n })), r = null;\n }\n\n (\"function\" == typeof u.canBeGrouped ? u.canBeGrouped(o) : void 0) ? r = [u] : c.push(u);\n }\n\n return r && c.push(new this(r, {\n depth: o,\n asTree: n\n })), c;\n }, t.prototype.getObjects = function () {\n return this.objects;\n }, t.prototype.getDepth = function () {\n return this.depth;\n }, t.prototype.getCacheKey = function () {\n var t, e, n, i, o;\n\n for (e = [\"objectGroup\"], o = this.getObjects(), t = 0, n = o.length; n > t; t++) {\n i = o[t], e.push(i.getCacheKey());\n }\n\n return e.join(\"/\");\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t5, e) {\n function i() {\n this.constructor = _t5;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t5[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t5.prototype = new i(), _t5.__super__ = e.prototype, _t5;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectMap = function (e) {\n function n(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = []), this.objects = {}, i = 0, o = t.length; o > i; i++) {\n r = t[i], n = JSON.stringify(r), null == (e = this.objects)[n] && (e[n] = r);\n }\n }\n\n return t(n, e), n.prototype.find = function (t) {\n var e;\n return e = JSON.stringify(t), this.objects[e];\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n e.ElementStore = function () {\n function t(t) {\n this.reset(t);\n }\n\n var e;\n return t.prototype.add = function (t) {\n var n;\n return n = e(t), this.elements[n] = t;\n }, t.prototype.remove = function (t) {\n var n, i;\n return n = e(t), (i = this.elements[n]) ? (delete this.elements[n], i) : void 0;\n }, t.prototype.reset = function (t) {\n var e, n, i;\n\n for (null == t && (t = []), this.elements = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.add(e);\n }\n\n return t;\n }, e = function e(t) {\n return t.dataset.trixStoreKey;\n }, t;\n }();\n }.call(this), function () {}.call(this), function () {\n var t = function t(_t6, e) {\n function i() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t6[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t6.prototype = new i(), _t6.__super__ = e.prototype, _t6;\n },\n n = {}.hasOwnProperty;\n\n e.Operation = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n.prototype.isPerforming = function () {\n return this.performing === !0;\n }, n.prototype.hasPerformed = function () {\n return this.performed === !0;\n }, n.prototype.hasSucceeded = function () {\n return this.performed && this.succeeded;\n }, n.prototype.hasFailed = function () {\n return this.performed && !this.succeeded;\n }, n.prototype.getPromise = function () {\n return null != this.promise ? this.promise : this.promise = new Promise(function (t) {\n return function (e, n) {\n return t.performing = !0, t.perform(function (i, o) {\n return t.succeeded = i, t.performing = !1, t.performed = !0, t.succeeded ? e(o) : n(o);\n });\n };\n }(this));\n }, n.prototype.perform = function (t) {\n return t(!1);\n }, n.prototype.release = function () {\n var t;\n return null != (t = this.promise) && \"function\" == typeof t.cancel && t.cancel(), this.promise = null, this.performing = null, this.performed = null, this.succeeded = null;\n }, n.proxyMethod(\"getPromise().then\"), n.proxyMethod(\"getPromise().catch\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty;\n\n e.UTF16String = function (t) {\n function e(t, e) {\n this.ucs2String = t, this.codepoints = e, this.length = this.codepoints.length, this.ucs2Length = this.ucs2String.length;\n }\n\n return s(e, t), e.box = function (t) {\n return null == t && (t = \"\"), t instanceof this ? t : this.fromUCS2String(null != t ? t.toString() : void 0);\n }, e.fromUCS2String = function (t) {\n return new this(t, o(t));\n }, e.fromCodepoints = function (t) {\n return new this(r(t), t);\n }, e.prototype.offsetToUCS2Offset = function (t) {\n return r(this.codepoints.slice(0, Math.max(0, t))).length;\n }, e.prototype.offsetFromUCS2Offset = function (t) {\n return o(this.ucs2String.slice(0, Math.max(0, t))).length;\n }, e.prototype.slice = function () {\n var t;\n return this.constructor.fromCodepoints((t = this.codepoints).slice.apply(t, arguments));\n }, e.prototype.charAt = function (t) {\n return this.slice(t, t + 1);\n }, e.prototype.isEqualTo = function (t) {\n return this.constructor.box(t).ucs2String === this.ucs2String;\n }, e.prototype.toJSON = function () {\n return this.ucs2String;\n }, e.prototype.getCacheKey = function () {\n return this.ucs2String;\n }, e.prototype.toString = function () {\n return this.ucs2String;\n }, e;\n }(e.BasicObject), t = 1 === (\"function\" == typeof Array.from ? Array.from(\"\\uD83D\\uDC7C\").length : void 0), n = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), i = \" \\uD83D\\uDC7C\" === (\"function\" == typeof String.fromCodePoint ? String.fromCodePoint(32, 128124) : void 0), o = t && n ? function (t) {\n return Array.from(t).map(function (t) {\n return t.codePointAt(0);\n });\n } : function (t) {\n var e, n, i, o, r;\n\n for (o = [], e = 0, i = t.length; i > e;) {\n r = t.charCodeAt(e++), r >= 55296 && 56319 >= r && i > e && (n = t.charCodeAt(e++), 56320 === (64512 & n) ? r = ((1023 & r) << 10) + (1023 & n) + 65536 : e--), o.push(r);\n }\n\n return o;\n }, r = i ? function (t) {\n return String.fromCodePoint.apply(String, t);\n } : function (t) {\n var e, n, i;\n return e = function () {\n var e, o, r;\n\n for (r = [], e = 0, o = t.length; o > e; e++) {\n i = t[e], n = \"\", i > 65535 && (i -= 65536, n += String.fromCharCode(i >>> 10 & 1023 | 55296), i = 56320 | 1023 & i), r.push(n + String.fromCharCode(i));\n }\n\n return r;\n }(), e.join(\"\");\n };\n }.call(this), function () {}.call(this), function () {}.call(this), function () {\n e.config.lang = {\n attachFiles: \"Attach Files\",\n bold: \"Bold\",\n bullets: \"Bullets\",\n \"byte\": \"Byte\",\n bytes: \"Bytes\",\n captionPlaceholder: \"Add a caption\\u2026\",\n code: \"Code\",\n heading1: \"Heading\",\n indent: \"Increase Level\",\n italic: \"Italic\",\n link: \"Link\",\n numbers: \"Numbers\",\n outdent: \"Decrease Level\",\n quote: \"Quote\",\n redo: \"Redo\",\n remove: \"Remove\",\n strike: \"Strikethrough\",\n undo: \"Undo\",\n unlink: \"Unlink\",\n url: \"URL\",\n urlPlaceholder: \"Enter a URL\\u2026\",\n GB: \"GB\",\n KB: \"KB\",\n MB: \"MB\",\n PB: \"PB\",\n TB: \"TB\"\n };\n }.call(this), function () {\n e.config.css = {\n attachment: \"attachment\",\n attachmentCaption: \"attachment__caption\",\n attachmentCaptionEditor: \"attachment__caption-editor\",\n attachmentMetadata: \"attachment__metadata\",\n attachmentMetadataContainer: \"attachment__metadata-container\",\n attachmentName: \"attachment__name\",\n attachmentProgress: \"attachment__progress\",\n attachmentSize: \"attachment__size\",\n attachmentToolbar: \"attachment__toolbar\",\n attachmentGallery: \"attachment-gallery\"\n };\n }.call(this), function () {\n var t;\n e.config.blockAttributes = t = {\n \"default\": {\n tagName: \"div\",\n parse: !1\n },\n quote: {\n tagName: \"blockquote\",\n nestable: !0\n },\n heading1: {\n tagName: \"h1\",\n terminal: !0,\n breakOnReturn: !0,\n group: !1\n },\n code: {\n tagName: \"pre\",\n terminal: !0,\n text: {\n plaintext: !0\n }\n },\n bulletList: {\n tagName: \"ul\",\n parse: !1\n },\n bullet: {\n tagName: \"li\",\n listAttribute: \"bulletList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n numberList: {\n tagName: \"ol\",\n parse: !1\n },\n number: {\n tagName: \"li\",\n listAttribute: \"numberList\",\n group: !1,\n nestable: !0,\n test: function test(n) {\n return e.tagName(n.parentNode) === t[this.listAttribute].tagName;\n }\n },\n attachmentGallery: {\n tagName: \"div\",\n exclusive: !0,\n terminal: !0,\n parse: !1,\n group: !1\n }\n };\n }.call(this), function () {\n var t, n;\n t = e.config.lang, n = [t.bytes, t.KB, t.MB, t.GB, t.TB, t.PB], e.config.fileSize = {\n prefix: \"IEC\",\n precision: 2,\n formatter: function formatter(e) {\n var i, o, r, s, a;\n\n switch (e) {\n case 0:\n return \"0 \" + t.bytes;\n\n case 1:\n return \"1 \" + t[\"byte\"];\n\n default:\n return i = function () {\n switch (this.prefix) {\n case \"SI\":\n return 1e3;\n\n case \"IEC\":\n return 1024;\n }\n }.call(this), o = Math.floor(Math.log(e) / Math.log(i)), r = e / Math.pow(i, o), s = r.toFixed(this.precision), a = s.replace(/0*$/, \"\").replace(/\\.$/, \"\"), a + \" \" + n[o];\n }\n }\n };\n }.call(this), function () {\n e.config.textAttributes = {\n bold: {\n tagName: \"strong\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"bold\" === e.fontWeight || e.fontWeight >= 600;\n }\n },\n italic: {\n tagName: \"em\",\n inheritable: !0,\n parser: function parser(t) {\n var e;\n return e = window.getComputedStyle(t), \"italic\" === e.fontStyle;\n }\n },\n href: {\n groupTagName: \"a\",\n parser: function parser(t) {\n var n, i, o;\n return n = e.AttachmentView.attachmentSelector, o = \"a:not(\" + n + \")\", (i = e.findClosestElementFromNode(t, {\n matchingSelector: o\n })) ? i.getAttribute(\"href\") : void 0;\n }\n },\n strike: {\n tagName: \"del\",\n inheritable: !0\n },\n frozen: {\n style: {\n backgroundColor: \"highlight\"\n }\n }\n };\n }.call(this), function () {\n var t, n, i, o, r;\n r = \"[data-trix-serialize=false]\", o = [\"contenteditable\", \"data-trix-id\", \"data-trix-store-key\", \"data-trix-mutable\", \"data-trix-placeholder\", \"tabindex\"], n = \"data-trix-serialized-attributes\", i = \"[\" + n + \"]\", t = new RegExp(\"\", \"g\"), e.extend({\n serializers: {\n \"application/json\": function applicationJson(t) {\n var n;\n if (t instanceof e.Document) n = t;else {\n if (!(t instanceof HTMLElement)) throw new Error(\"unserializable object\");\n n = e.Document.fromHTML(t.innerHTML);\n }\n return n.toSerializableDocument().toJSONString();\n },\n \"text/html\": function textHtml(s) {\n var a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n if (s instanceof e.Document) l = e.DocumentView.render(s);else {\n if (!(s instanceof HTMLElement)) throw new Error(\"unserializable object\");\n l = s.cloneNode(!0);\n }\n\n for (A = l.querySelectorAll(r), h = 0, g = A.length; g > h; h++) {\n c = A[h], e.removeNode(c);\n }\n\n for (p = 0, m = o.length; m > p; p++) {\n for (a = o[p], C = l.querySelectorAll(\"[\" + a + \"]\"), d = 0, v = C.length; v > d; d++) {\n c = C[d], c.removeAttribute(a);\n }\n }\n\n for (x = l.querySelectorAll(i), f = 0, y = x.length; y > f; f++) {\n c = x[f];\n\n try {\n u = JSON.parse(c.getAttribute(n)), c.removeAttribute(n);\n\n for (b in u) {\n w = u[b], c.setAttribute(b, w);\n }\n } catch (E) {}\n }\n\n return l.innerHTML.replace(t, \"\");\n }\n },\n deserializers: {\n \"application/json\": function applicationJson(t) {\n return e.Document.fromJSONString(t);\n },\n \"text/html\": function textHtml(t) {\n return e.Document.fromHTML(t);\n }\n },\n serializeToContentType: function serializeToContentType(t, n) {\n var i;\n if (i = e.serializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n },\n deserializeFromContentType: function deserializeFromContentType(t, n) {\n var i;\n if (i = e.deserializers[n]) return i(t);\n throw new Error(\"unknown content type: \" + n);\n }\n });\n }.call(this), function () {\n var t;\n t = e.config.lang, e.config.toolbar = {\n getDefaultHTML: function getDefaultHTML() {\n return '
\\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n\\n \\n \\n \\n\\n \\n\\n \\n \\n \\n \\n
\\n\\n
\\n
\\n \\n
\\n
';\n }\n };\n }.call(this), function () {\n e.config.undoInterval = 5e3;\n }.call(this), function () {\n e.config.attachments = {\n preview: {\n presentation: \"gallery\",\n caption: {\n name: !0,\n size: !0\n }\n },\n file: {\n caption: {\n size: !0\n }\n }\n };\n }.call(this), function () {\n e.config.keyNames = {\n 8: \"backspace\",\n 9: \"tab\",\n 13: \"return\",\n 27: \"escape\",\n 37: \"left\",\n 39: \"right\",\n 46: \"delete\",\n 68: \"d\",\n 72: \"h\",\n 79: \"o\"\n };\n }.call(this), function () {\n e.config.input = {\n level2Enabled: !0,\n getLevel: function getLevel() {\n return this.level2Enabled && e.browser.supportsInputEvents ? 2 : 0;\n },\n pickFiles: function pickFiles(t) {\n var n;\n return n = e.makeElement(\"input\", {\n type: \"file\",\n multiple: !0,\n hidden: !0,\n id: this.fileInputId\n }), n.addEventListener(\"change\", function () {\n return t(n.files), e.removeNode(n);\n }), e.removeNode(document.getElementById(this.fileInputId)), document.body.appendChild(n), n.click();\n },\n fileInputId: \"trix-file-input-\" + Date.now().toString(16)\n };\n }.call(this), function () {}.call(this), function () {\n e.registerElement(\"trix-toolbar\", {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t {\\n white-space: nowrap;\\n}\\n\\n%t [data-trix-dialog] {\\n display: none;\\n}\\n\\n%t [data-trix-dialog][data-trix-active] {\\n display: block;\\n}\\n\\n%t [data-trix-dialog] [data-trix-validate]:invalid {\\n background-color: #ffdddd;\\n}\",\n initialize: function initialize() {\n return \"\" === this.innerHTML ? this.innerHTML = e.config.toolbar.getDefaultHTML() : void 0;\n }\n });\n }.call(this), function () {\n var t = function t(_t7, e) {\n function i() {\n this.constructor = _t7;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t7[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t7.prototype = new i(), _t7.__super__ = e.prototype, _t7;\n },\n n = {}.hasOwnProperty,\n i = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n e.ObjectView = function (n) {\n function o(t, e) {\n this.object = t, this.options = null != e ? e : {}, this.childViews = [], this.rootView = this;\n }\n\n return t(o, n), o.prototype.getNodes = function () {\n var t, e, n, i, o;\n\n for (null == this.nodes && (this.nodes = this.createNodes()), i = this.nodes, o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.cloneNode(!0));\n }\n\n return o;\n }, o.prototype.invalidate = function () {\n var t;\n return this.nodes = null, this.childViews = [], null != (t = this.parentView) ? t.invalidate() : void 0;\n }, o.prototype.invalidateViewForObject = function (t) {\n var e;\n return null != (e = this.findViewForObject(t)) ? e.invalidate() : void 0;\n }, o.prototype.findOrCreateCachedChildView = function (t, e) {\n var n;\n return (n = this.getCachedViewForObject(e)) ? this.recordChildView(n) : (n = this.createChildView.apply(this, arguments), this.cacheViewForObject(n, e)), n;\n }, o.prototype.createChildView = function (t, n, i) {\n var o;\n return null == i && (i = {}), n instanceof e.ObjectGroup && (i.viewClass = t, t = e.ObjectGroupView), o = new t(n, i), this.recordChildView(o);\n }, o.prototype.recordChildView = function (t) {\n return t.parentView = this, t.rootView = this.rootView, this.childViews.push(t), t;\n }, o.prototype.getAllChildViews = function () {\n var t, e, n, i, o;\n\n for (o = [], i = this.childViews, e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t), o = o.concat(t.getAllChildViews());\n }\n\n return o;\n }, o.prototype.findElement = function () {\n return this.findElementForObject(this.object);\n }, o.prototype.findElementForObject = function (t) {\n var e;\n return (e = null != t ? t.id : void 0) ? this.rootView.element.querySelector(\"[data-trix-id='\" + e + \"']\") : void 0;\n }, o.prototype.findViewForObject = function (t) {\n var e, n, i, o;\n\n for (i = this.getAllChildViews(), e = 0, n = i.length; n > e; e++) {\n if (o = i[e], o.object === t) return o;\n }\n }, o.prototype.getViewCache = function () {\n return this.rootView !== this ? this.rootView.getViewCache() : this.isViewCachingEnabled() ? null != this.viewCache ? this.viewCache : this.viewCache = {} : void 0;\n }, o.prototype.isViewCachingEnabled = function () {\n return this.shouldCacheViews !== !1;\n }, o.prototype.enableViewCaching = function () {\n return this.shouldCacheViews = !0;\n }, o.prototype.disableViewCaching = function () {\n return this.shouldCacheViews = !1;\n }, o.prototype.getCachedViewForObject = function (t) {\n var e;\n return null != (e = this.getViewCache()) ? e[t.getCacheKey()] : void 0;\n }, o.prototype.cacheViewForObject = function (t, e) {\n var n;\n return null != (n = this.getViewCache()) ? n[e.getCacheKey()] = t : void 0;\n }, o.prototype.garbageCollectCachedViews = function () {\n var t, e, n, o, r, s;\n\n if (t = this.getViewCache()) {\n s = this.getAllChildViews().concat(this), n = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = s.length; e > t; t++) {\n r = s[t], n.push(r.object.getCacheKey());\n }\n\n return n;\n }(), o = [];\n\n for (e in t) {\n i.call(n, e) < 0 && o.push(delete t[e]);\n }\n\n return o;\n }\n }, o;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t8, e) {\n function i() {\n this.constructor = _t8;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t8[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t8.prototype = new i(), _t8.__super__ = e.prototype, _t8;\n },\n n = {}.hasOwnProperty;\n\n e.ObjectGroupView = function (e) {\n function n() {\n n.__super__.constructor.apply(this, arguments), this.objectGroup = this.object, this.viewClass = this.options.viewClass, delete this.options.viewClass;\n }\n\n return t(n, e), n.prototype.getChildViews = function () {\n var t, e, n, i;\n if (!this.childViews.length) for (i = this.objectGroup.getObjects(), t = 0, e = i.length; e > t; t++) {\n n = i[t], this.findOrCreateCachedChildView(this.viewClass, n, this.options);\n }\n return this.childViews;\n }, n.prototype.createNodes = function () {\n var t, e, n, i, o, r, s, a, u;\n\n for (t = this.createContainerElement(), s = this.getChildViews(), e = 0, i = s.length; i > e; e++) {\n for (u = s[e], a = u.getNodes(), n = 0, o = a.length; o > n; n++) {\n r = a[n], t.appendChild(r);\n }\n }\n\n return [t];\n }, n.prototype.createContainerElement = function (t) {\n return null == t && (t = this.objectGroup.getDepth()), this.getChildViews()[0].createContainerElement(t);\n }, n;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t9, e) {\n function i() {\n this.constructor = _t9;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t9[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t9.prototype = new i(), _t9.__super__ = e.prototype, _t9;\n },\n n = {}.hasOwnProperty;\n\n e.Controller = function (e) {\n function n() {\n return n.__super__.constructor.apply(this, arguments);\n }\n\n return t(n, e), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a = function a(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n u = function u(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n c.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n c = {}.hasOwnProperty,\n l = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.findClosestElementFromNode, i = e.nodeIsEmptyTextNode, n = e.nodeIsBlockStartComment, o = e.normalizeSpaces, r = e.summarizeStringChange, s = e.tagName, e.MutationObserver = function (e) {\n function c(t) {\n this.element = t, this.didMutate = a(this.didMutate, this), this.observer = new window.MutationObserver(this.didMutate), this.start();\n }\n\n var _h, p, d, f;\n\n return u(c, e), p = \"data-trix-mutable\", d = \"[\" + p + \"]\", f = {\n attributes: !0,\n childList: !0,\n characterData: !0,\n characterDataOldValue: !0,\n subtree: !0\n }, c.prototype.start = function () {\n return this.reset(), this.observer.observe(this.element, f);\n }, c.prototype.stop = function () {\n return this.observer.disconnect();\n }, c.prototype.didMutate = function (t) {\n var e, n;\n return (e = this.mutations).push.apply(e, this.findSignificantMutations(t)), this.mutations.length ? (null != (n = this.delegate) && \"function\" == typeof n.elementDidMutate && n.elementDidMutate(this.getMutationSummary()), this.reset()) : void 0;\n }, c.prototype.reset = function () {\n return this.mutations = [];\n }, c.prototype.findSignificantMutations = function (t) {\n var e, n, i, o;\n\n for (o = [], e = 0, n = t.length; n > e; e++) {\n i = t[e], this.mutationIsSignificant(i) && o.push(i);\n }\n\n return o;\n }, c.prototype.mutationIsSignificant = function (t) {\n var e, n, i, o;\n if (this.nodeIsMutable(t.target)) return !1;\n\n for (o = this.nodesModifiedByMutation(t), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], this.nodeIsSignificant(i)) return !0;\n }\n\n return !1;\n }, c.prototype.nodeIsSignificant = function (t) {\n return t !== this.element && !this.nodeIsMutable(t) && !i(t);\n }, c.prototype.nodeIsMutable = function (e) {\n return t(e, {\n matchingSelector: d\n });\n }, c.prototype.nodesModifiedByMutation = function (t) {\n var e;\n\n switch (e = [], t.type) {\n case \"attributes\":\n t.attributeName !== p && e.push(t.target);\n break;\n\n case \"characterData\":\n e.push(t.target.parentNode), e.push(t.target);\n break;\n\n case \"childList\":\n e.push.apply(e, t.addedNodes), e.push.apply(e, t.removedNodes);\n }\n\n return e;\n }, c.prototype.getMutationSummary = function () {\n return this.getTextMutationSummary();\n }, c.prototype.getTextMutationSummary = function () {\n var t, e, n, i, o, r, s, a, u, c, h;\n\n for (a = this.getTextChangesFromCharacterData(), n = a.additions, o = a.deletions, h = this.getTextChangesFromChildList(), u = h.additions, r = 0, s = u.length; s > r; r++) {\n e = u[r], l.call(n, e) < 0 && n.push(e);\n }\n\n return o.push.apply(o, h.deletions), c = {}, (t = n.join(\"\")) && (c.textAdded = t), (i = o.join(\"\")) && (c.textDeleted = i), c;\n }, c.prototype.getMutationsByType = function (t) {\n var e, n, i, o, r;\n\n for (o = this.mutations, r = [], e = 0, n = o.length; n > e; e++) {\n i = o[e], i.type === t && r.push(i);\n }\n\n return r;\n }, c.prototype.getTextChangesFromChildList = function () {\n var t, e, i, r, s, a, u, c, l, p, d;\n\n for (t = [], u = [], a = this.getMutationsByType(\"childList\"), e = 0, r = a.length; r > e; e++) {\n s = a[e], t.push.apply(t, s.addedNodes), u.push.apply(u, s.removedNodes);\n }\n\n return c = 0 === t.length && 1 === u.length && n(u[0]), c ? (p = [], d = [\"\\n\"]) : (p = _h(t), d = _h(u)), {\n additions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = p.length; e > t; i = ++t) {\n l = p[i], l !== d[i] && n.push(o(l));\n }\n\n return n;\n }(),\n deletions: function () {\n var t, e, n;\n\n for (n = [], i = t = 0, e = d.length; e > t; i = ++t) {\n l = d[i], l !== p[i] && n.push(o(l));\n }\n\n return n;\n }()\n };\n }, c.prototype.getTextChangesFromCharacterData = function () {\n var t, e, n, i, s, a, u, c;\n return e = this.getMutationsByType(\"characterData\"), e.length && (c = e[0], n = e[e.length - 1], s = o(c.oldValue), i = o(n.target.data), a = r(s, i), t = a.added, u = a.removed), {\n additions: t ? [t] : [],\n deletions: u ? [u] : []\n };\n }, _h = function h(t) {\n var e, n, i, o;\n\n for (null == t && (t = []), o = [], e = 0, n = t.length; n > e; e++) {\n switch (i = t[e], i.nodeType) {\n case Node.TEXT_NODE:\n o.push(i.data);\n break;\n\n case Node.ELEMENT_NODE:\n \"br\" === s(i) ? o.push(\"\\n\") : o.push.apply(o, _h(i.childNodes));\n }\n }\n\n return o;\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t10, e) {\n function i() {\n this.constructor = _t10;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t10[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t10.prototype = new i(), _t10.__super__ = e.prototype, _t10;\n },\n n = {}.hasOwnProperty;\n\n e.FileVerificationOperation = function (e) {\n function n(t) {\n this.file = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new FileReader(), e.onerror = function () {\n return t(!1);\n }, e.onload = function (n) {\n return function () {\n e.onerror = null;\n\n try {\n e.abort();\n } catch (i) {}\n\n return t(!0, n.file);\n };\n }(this), e.readAsArrayBuffer(this.file);\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.handleEvent, n = e.innerElementIsActive, e.InputController = function (o) {\n function r(n) {\n var i;\n this.element = n, this.mutationObserver = new e.MutationObserver(this.element), this.mutationObserver.delegate = this;\n\n for (i in this.events) {\n t(i, {\n onElement: this.element,\n withCallback: this.handlerFor(i)\n });\n }\n }\n\n return i(r, o), r.prototype.events = {}, r.prototype.elementDidMutate = function () {}, r.prototype.editorWillSyncDocumentView = function () {\n return this.mutationObserver.stop();\n }, r.prototype.editorDidSyncDocumentView = function () {\n return this.mutationObserver.start();\n }, r.prototype.requestRender = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestRender ? t.inputControllerDidRequestRender() : void 0;\n }, r.prototype.requestReparse = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidRequestReparse && t.inputControllerDidRequestReparse(), this.requestRender();\n }, r.prototype.attachFiles = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(new e.FileVerificationOperation(n));\n }\n\n return r;\n }(), Promise.all(i).then(function (t) {\n return function (e) {\n return t.handleInput(function () {\n var t, n;\n return null != (t = this.delegate) && t.inputControllerWillAttachFiles(), null != (n = this.responder) && n.insertFiles(e), this.requestRender();\n });\n };\n }(this));\n }, r.prototype.handlerFor = function (t) {\n return function (e) {\n return function (i) {\n return i.defaultPrevented ? void 0 : e.handleInput(function () {\n return n(this.element) ? void 0 : (this.eventName = t, this.events[t].call(this, i));\n });\n };\n }(this);\n }, r.prototype.handleInput = function (t) {\n var e, n;\n\n try {\n return null != (e = this.delegate) && e.inputControllerWillHandleInput(), t.call(this);\n } finally {\n null != (n = this.delegate) && n.inputControllerDidHandleInput();\n }\n }, r;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p,\n d,\n f = function f(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n g.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n g = {}.hasOwnProperty,\n m = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n c = e.makeElement, l = e.objectsAreEqual, d = e.tagName, n = e.browser, a = e.keyEventIsKeyboardCommand, o = e.dataTransferIsWritable, i = e.dataTransferIsPlainText, u = e.config.keyNames, e.Level0InputController = function (n) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.resetInputSummary();\n }\n\n var d;\n return f(s, n), d = 0, s.prototype.setInputSummary = function (t) {\n var e, n;\n null == t && (t = {}), this.inputSummary.eventName = this.eventName;\n\n for (e in t) {\n n = t[e], this.inputSummary[e] = n;\n }\n\n return this.inputSummary;\n }, s.prototype.resetInputSummary = function () {\n return this.inputSummary = {};\n }, s.prototype.reset = function () {\n return this.resetInputSummary(), e.selectionChangeObserver.reset();\n }, s.prototype.elementDidMutate = function (t) {\n var e;\n return this.isComposing() ? null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidAllowUnhandledInput ? e.inputControllerDidAllowUnhandledInput() : void 0 : this.handleInput(function () {\n return this.mutationIsSignificant(t) && (this.mutationIsExpected(t) ? this.requestRender() : this.requestReparse()), this.reset();\n });\n }, s.prototype.mutationIsExpected = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return a = t.textAdded, u = t.textDeleted, this.inputSummary.preferDocument ? !0 : (e = null != a ? a === this.inputSummary.textAdded : !this.inputSummary.textAdded, n = null != u ? this.inputSummary.didDelete : !this.inputSummary.didDelete, c = (\"\\n\" === a || \" \\n\" === a) && !e, l = \"\\n\" === u && !n, s = c && !l || l && !c, s && (o = this.getSelectedRange()) && (i = c ? a.replace(/\\n$/, \"\").length || -1 : (null != a ? a.length : void 0) || 1, null != (r = this.responder) ? r.positionIsBlockBreak(o[1] + i) : void 0) ? !0 : e && n);\n }, s.prototype.mutationIsSignificant = function (t) {\n var e, n, i;\n return i = Object.keys(t).length > 0, e = \"\" === (null != (n = this.compositionInput) ? n.getEndData() : void 0), i || !e;\n }, s.prototype.events = {\n keydown: function keydown(t) {\n var n, i, o, r, s, c, l, h, p;\n\n if (this.isComposing() || this.resetInputSummary(), this.inputSummary.didInput = !0, r = u[t.keyCode]) {\n for (i = this.keys, h = [\"ctrl\", \"alt\", \"shift\", \"meta\"], o = 0, c = h.length; c > o; o++) {\n l = h[o], t[l + \"Key\"] && (\"ctrl\" === l && (l = \"control\"), i = null != i ? i[l] : void 0);\n }\n\n null != (null != i ? i[r] : void 0) && (this.setInputSummary({\n keyName: r\n }), e.selectionChangeObserver.reset(), i[r].call(this, t));\n }\n\n return a(t) && (n = String.fromCharCode(t.keyCode).toLowerCase()) && (s = function () {\n var e, n, i, o;\n\n for (i = [\"alt\", \"shift\"], o = [], e = 0, n = i.length; n > e; e++) {\n l = i[e], t[l + \"Key\"] && o.push(l);\n }\n\n return o;\n }(), s.push(n), null != (p = this.delegate) ? p.inputControllerDidReceiveKeyboardCommand(s) : void 0) ? t.preventDefault() : void 0;\n },\n keypress: function keypress(t) {\n var e, n, i;\n if (null == this.inputSummary.eventName && !t.metaKey && (!t.ctrlKey || t.altKey)) return (i = p(t)) ? (null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(i), this.setInputSummary({\n textAdded: i,\n didDelete: this.selectionIsExpanded()\n })) : void 0;\n },\n textInput: function textInput(t) {\n var e, n, i, o;\n return e = t.data, o = this.inputSummary.textAdded, o && o !== e && o.toUpperCase() === e ? (n = this.getSelectedRange(), this.setSelectedRange([n[0], n[1] + o.length]), null != (i = this.responder) && i.insertString(e), this.setInputSummary({\n textAdded: e\n }), this.setSelectedRange(n)) : void 0;\n },\n dragenter: function dragenter(t) {\n return t.preventDefault();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return n = t.target, this.serializeSelectionToDataTransfer(t.dataTransfer), this.draggedRange = this.getSelectedRange(), null != (e = this.delegate) && \"function\" == typeof e.inputControllerDidStartDrag ? e.inputControllerDidStartDrag() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return !this.draggedRange && !this.canAcceptDataTransfer(t.dataTransfer) || (t.preventDefault(), e = {\n x: t.clientX,\n y: t.clientY\n }, l(e, this.draggingPoint)) ? void 0 : (this.draggingPoint = e, null != (n = this.delegate) && \"function\" == typeof n.inputControllerDidReceiveDragOverPoint ? n.inputControllerDidReceiveDragOverPoint(this.draggingPoint) : void 0);\n },\n dragend: function dragend() {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidCancelDrag && t.inputControllerDidCancelDrag(), this.draggedRange = null, this.draggingPoint = null;\n },\n drop: function drop(t) {\n var n, i, o, r, s, a, u, c, l;\n return t.preventDefault(), o = null != (s = t.dataTransfer) ? s.files : void 0, r = {\n x: t.clientX,\n y: t.clientY\n }, null != (a = this.responder) && a.setLocationRangeFromPointRange(r), (null != o ? o.length : void 0) ? this.attachFiles(o) : this.draggedRange ? (null != (u = this.delegate) && u.inputControllerWillMoveText(), null != (c = this.responder) && c.moveTextFromRange(this.draggedRange), this.draggedRange = null, this.requestRender()) : (i = t.dataTransfer.getData(\"application/x-trix-document\")) && (n = e.Document.fromJSONString(i), null != (l = this.responder) && l.insertDocument(n), this.requestRender()), this.draggedRange = null, this.draggingPoint = null;\n },\n cut: function cut(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && (this.serializeSelectionToDataTransfer(t.clipboardData) && t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillCutText(), this.deleteInDirection(\"backward\"), t.defaultPrevented) ? this.requestRender() : void 0;\n },\n copy: function copy(t) {\n var e;\n return (null != (e = this.responder) ? e.selectionIsExpanded() : void 0) && this.serializeSelectionToDataTransfer(t.clipboardData) ? t.preventDefault() : void 0;\n },\n paste: function paste(t) {\n var n, o, s, a, u, c, l, p, f, g, v, y, b, A, C, x, w, E, S, R, k, D;\n return n = null != (p = t.clipboardData) ? p : t.testClipboardData, l = {\n clipboard: n\n }, null == n || h(t) ? void this.getPastedHTMLUsingHiddenElement(function (t) {\n return function (e) {\n var n, i, o;\n return l.type = \"text/html\", l.html = e, null != (n = t.delegate) && n.inputControllerWillPaste(l), null != (i = t.responder) && i.insertHTML(l.html), t.requestRender(), null != (o = t.delegate) ? o.inputControllerDidPaste(l) : void 0;\n };\n }(this)) : ((a = n.getData(\"URL\")) ? (l.type = \"URL\", l.href = a, l.string = (c = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(c).trim() : a, null != (f = this.delegate) && f.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (C = this.responder) && C.insertText(e.Text.textForStringWithAttributes(l.string, {\n href: l.href\n })), this.requestRender(), null != (x = this.delegate) && x.inputControllerDidPaste(l)) : i(n) ? (l.type = \"text/plain\", l.string = n.getData(\"text/plain\"), null != (w = this.delegate) && w.inputControllerWillPaste(l), this.setInputSummary({\n textAdded: l.string,\n didDelete: this.selectionIsExpanded()\n }), null != (E = this.responder) && E.insertString(l.string), this.requestRender(), null != (S = this.delegate) && S.inputControllerDidPaste(l)) : (u = n.getData(\"text/html\")) ? (l.type = \"text/html\", l.html = u, null != (R = this.delegate) && R.inputControllerWillPaste(l), null != (k = this.responder) && k.insertHTML(l.html), this.requestRender(), null != (D = this.delegate) && D.inputControllerDidPaste(l)) : m.call(n.types, \"Files\") >= 0 && (s = null != (g = n.items) && null != (v = g[0]) && \"function\" == typeof v.getAsFile ? v.getAsFile() : void 0) && (!s.name && (o = r(s)) && (s.name = \"pasted-file-\" + ++d + \".\" + o), l.type = \"File\", l.file = s, null != (y = this.delegate) && y.inputControllerWillAttachFiles(), null != (b = this.responder) && b.insertFile(l.file), this.requestRender(), null != (A = this.delegate) && A.inputControllerDidPaste(l)), t.preventDefault());\n },\n compositionstart: function compositionstart(t) {\n return this.getCompositionInput().start(t.data);\n },\n compositionupdate: function compositionupdate(t) {\n return this.getCompositionInput().update(t.data);\n },\n compositionend: function compositionend(t) {\n return this.getCompositionInput().end(t.data);\n },\n beforeinput: function beforeinput() {\n return this.inputSummary.didInput = !0;\n },\n input: function input(t) {\n return this.inputSummary.didInput = !0, t.stopPropagation();\n }\n }, s.prototype.keys = {\n backspace: function backspace(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n \"delete\": function _delete(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n \"return\": function _return() {\n var t, e;\n return this.setInputSummary({\n preferDocument: !0\n }), null != (t = this.delegate) && t.inputControllerWillPerformTyping(), null != (e = this.responder) ? e.insertLineBreak() : void 0;\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canIncreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.increaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n right: function right(t) {\n var e;\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n control: {\n d: function d(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"forward\", t);\n },\n h: function h(t) {\n var e;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), this.deleteInDirection(\"backward\", t);\n },\n o: function o(t) {\n var e, n;\n return t.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\", {\n updatePosition: !1\n }), this.requestRender();\n }\n },\n shift: {\n \"return\": function _return(t) {\n var e, n;\n return null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.insertString(\"\\n\"), this.requestRender(), t.preventDefault();\n },\n tab: function tab(t) {\n var e, n;\n return (null != (e = this.responder) ? e.canDecreaseNestingLevel() : void 0) ? (null != (n = this.responder) && n.decreaseNestingLevel(), this.requestRender(), t.preventDefault()) : void 0;\n },\n left: function left(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"backward\")) : void 0;\n },\n right: function right(t) {\n return this.selectionIsInCursorTarget() ? (t.preventDefault(), this.expandSelectionInDirection(\"forward\")) : void 0;\n }\n },\n alt: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n },\n meta: {\n backspace: function backspace() {\n var t;\n return this.setInputSummary({\n preferDocument: !1\n }), null != (t = this.delegate) ? t.inputControllerWillPerformTyping() : void 0;\n }\n }\n }, s.prototype.getCompositionInput = function () {\n return this.isComposing() ? this.compositionInput : this.compositionInput = new t(this);\n }, s.prototype.isComposing = function () {\n return null != this.compositionInput && !this.compositionInput.isEnded();\n }, s.prototype.deleteInDirection = function (t, e) {\n var n;\n return (null != (n = this.responder) ? n.deleteInDirection(t) : void 0) !== !1 ? this.setInputSummary({\n didDelete: !0\n }) : e ? (e.preventDefault(), this.requestRender()) : void 0;\n }, s.prototype.serializeSelectionToDataTransfer = function (t) {\n var n, i;\n if (o(t)) return n = null != (i = this.responder) ? i.getSelectedDocument().toSerializableDocument() : void 0, t.setData(\"application/x-trix-document\", JSON.stringify(n)), t.setData(\"text/html\", e.DocumentView.render(n).innerHTML), t.setData(\"text/plain\", n.toString().replace(/\\n$/, \"\")), !0;\n }, s.prototype.canAcceptDataTransfer = function (t) {\n var e, n, i, o, r, s;\n\n for (s = {}, o = null != (i = null != t ? t.types : void 0) ? i : [], e = 0, n = o.length; n > e; e++) {\n r = o[e], s[r] = !0;\n }\n\n return s.Files || s[\"application/x-trix-document\"] || s[\"text/html\"] || s[\"text/plain\"];\n }, s.prototype.getPastedHTMLUsingHiddenElement = function (t) {\n var n, i, o;\n return i = this.getSelectedRange(), o = {\n position: \"absolute\",\n left: window.pageXOffset + \"px\",\n top: window.pageYOffset + \"px\",\n opacity: 0\n }, n = c({\n style: o,\n tagName: \"div\",\n editable: !0\n }), document.body.appendChild(n), n.focus(), requestAnimationFrame(function (o) {\n return function () {\n var r;\n return r = n.innerHTML, e.removeNode(n), o.setSelectedRange(i), t(r);\n };\n }(this));\n }, s.proxyMethod(\"responder?.getSelectedRange\"), s.proxyMethod(\"responder?.setSelectedRange\"), s.proxyMethod(\"responder?.expandSelectionInDirection\"), s.proxyMethod(\"responder?.selectionIsInCursorTarget\"), s.proxyMethod(\"responder?.selectionIsExpanded\"), s;\n }(e.InputController), r = function r(t) {\n var e, n;\n return null != (e = t.type) && null != (n = e.match(/\\/(\\w+)$/)) ? n[1] : void 0;\n }, s = null != (\"function\" == typeof \" \".codePointAt ? \" \".codePointAt(0) : void 0), p = function p(t) {\n var n;\n return t.key && s && t.key.codePointAt(0) === t.keyCode ? t.key : (null === t.which ? n = t.keyCode : 0 !== t.which && 0 !== t.charCode && (n = t.charCode), null != n && \"escape\" !== u[n] ? e.UTF16String.fromCodepoints([n]).toString() : void 0);\n }, h = function h(t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n if (u = t.clipboardData) {\n if (m.call(u.types, \"text/html\") >= 0) {\n for (c = u.types, i = 0, s = c.length; s > i; i++) {\n if (l = c[i], e = /^CorePasteboardFlavorType/.test(l), n = /^dyn\\./.test(l) && u.getData(l), a = e || n) return !0;\n }\n\n return !1;\n }\n\n return o = m.call(u.types, \"com.apple.webarchive\") >= 0, r = m.call(u.types, \"com.apple.flat-rtfd\") >= 0, o || r;\n }\n }, t = function (t) {\n function e(t) {\n var e;\n this.inputController = t, e = this.inputController, this.responder = e.responder, this.delegate = e.delegate, this.inputSummary = e.inputSummary, this.data = {};\n }\n\n return f(e, t), e.prototype.start = function (t) {\n var e, n;\n return this.data.start = t, this.isSignificant() ? (\"keypress\" === this.inputSummary.eventName && this.inputSummary.textAdded && null != (e = this.responder) && e.deleteInDirection(\"left\"), this.selectionIsExpanded() || (this.insertPlaceholder(), this.requestRender()), this.range = null != (n = this.responder) ? n.getSelectedRange() : void 0) : void 0;\n }, e.prototype.update = function (t) {\n var e;\n return this.data.update = t, this.isSignificant() && (e = this.selectPlaceholder()) ? (this.forgetPlaceholder(), this.range = e) : void 0;\n }, e.prototype.end = function (t) {\n var e, n, i, o;\n return this.data.end = t, this.isSignificant() ? (this.forgetPlaceholder(), this.canApplyToDocument() ? (this.setInputSummary({\n preferDocument: !0,\n didInput: !1\n }), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.setSelectedRange(this.range), null != (i = this.responder) && i.insertString(this.data.end), null != (o = this.responder) ? o.setSelectedRange(this.range[0] + this.data.end.length) : void 0) : null != this.data.start || null != this.data.update ? (this.requestReparse(), this.inputController.reset()) : void 0) : this.inputController.reset();\n }, e.prototype.getEndData = function () {\n return this.data.end;\n }, e.prototype.isEnded = function () {\n return null != this.getEndData();\n }, e.prototype.isSignificant = function () {\n return n.composesExistingText ? this.inputSummary.didInput : !0;\n }, e.prototype.canApplyToDocument = function () {\n var t, e;\n return 0 === (null != (t = this.data.start) ? t.length : void 0) && (null != (e = this.data.end) ? e.length : void 0) > 0 && null != this.range;\n }, e.proxyMethod(\"inputController.setInputSummary\"), e.proxyMethod(\"inputController.requestRender\"), e.proxyMethod(\"inputController.requestReparse\"), e.proxyMethod(\"responder?.selectionIsExpanded\"), e.proxyMethod(\"responder?.insertPlaceholder\"), e.proxyMethod(\"responder?.selectPlaceholder\"), e.proxyMethod(\"responder?.forgetPlaceholder\"), e;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.dataTransferIsPlainText, n = e.keyEventIsKeyboardCommand, i = e.objectsAreEqual, e.Level2InputController = function (s) {\n function u() {\n return this.render = o(this.render, this), u.__super__.constructor.apply(this, arguments);\n }\n\n var c, l, h, p, d, f;\n return r(u, s), u.prototype.elementDidMutate = function () {\n var t;\n return this.scheduledRender ? this.composing && null != (t = this.delegate) && \"function\" == typeof t.inputControllerDidAllowUnhandledInput ? t.inputControllerDidAllowUnhandledInput() : void 0 : this.reparse();\n }, u.prototype.scheduleRender = function () {\n return null != this.scheduledRender ? this.scheduledRender : this.scheduledRender = requestAnimationFrame(this.render);\n }, u.prototype.render = function () {\n var t;\n return cancelAnimationFrame(this.scheduledRender), this.scheduledRender = null, this.composing || null != (t = this.delegate) && t.render(), \"function\" == typeof this.afterRender && this.afterRender(), this.afterRender = null;\n }, u.prototype.reparse = function () {\n var t;\n return null != (t = this.delegate) ? t.reparse() : void 0;\n }, u.prototype.events = {\n keydown: function keydown(t) {\n var e, i, o, r;\n\n if (n(t)) {\n if (e = l(t), null != (r = this.delegate) ? r.inputControllerDidReceiveKeyboardCommand(e) : void 0) return t.preventDefault();\n } else if (o = t.key, t.altKey && (o += \"+Alt\"), t.shiftKey && (o += \"+Shift\"), i = this.keys[o]) return this.withEvent(t, i);\n },\n paste: function paste(t) {\n var n, i, o, r, s, a, u, c, l;\n return h(t) ? (t.preventDefault(), this.attachFiles(t.clipboardData.files)) : p(t) ? (t.preventDefault(), i = {\n type: \"text/plain\",\n string: t.clipboardData.getData(\"text/plain\")\n }, null != (o = this.delegate) && o.inputControllerWillPaste(i), null != (r = this.responder) && r.insertString(i.string), this.render(), null != (s = this.delegate) ? s.inputControllerDidPaste(i) : void 0) : (n = null != (a = t.clipboardData) ? a.getData(\"URL\") : void 0) ? (t.preventDefault(), i = {\n type: \"URL\",\n href: n,\n string: n\n }, null != (u = this.delegate) && u.inputControllerWillPaste(i), null != (c = this.responder) && c.insertText(e.Text.textForStringWithAttributes(i.string, {\n href: i.href\n })), this.render(), null != (l = this.delegate) ? l.inputControllerDidPaste(i) : void 0) : void 0;\n },\n beforeinput: function beforeinput(t) {\n var e;\n return (e = this.inputTypes[t.inputType]) ? (this.withEvent(t, e), this.scheduleRender()) : void 0;\n },\n input: function input() {\n return e.selectionChangeObserver.reset();\n },\n dragstart: function dragstart(t) {\n var e, n;\n return (null != (e = this.responder) ? e.selectionContainsAttachments() : void 0) ? (t.dataTransfer.setData(\"application/x-trix-dragging\", !0), this.dragging = {\n range: null != (n = this.responder) ? n.getSelectedRange() : void 0,\n point: d(t)\n }) : void 0;\n },\n dragenter: function dragenter(t) {\n return c(t) ? t.preventDefault() : void 0;\n },\n dragover: function dragover(t) {\n var e, n;\n return this.dragging && (t.preventDefault(), e = d(t), !i(e, this.dragging.point)) ? (this.dragging.point = e, null != (n = this.responder) ? n.setLocationRangeFromPointRange(e) : void 0) : void 0;\n },\n drop: function drop(t) {\n var e, n, i, o;\n return this.dragging ? (t.preventDefault(), null != (n = this.delegate) && n.inputControllerWillMoveText(), null != (i = this.responder) && i.moveTextFromRange(this.dragging.range), this.dragging = null, this.scheduleRender()) : c(t) ? (t.preventDefault(), e = d(t), null != (o = this.responder) && o.setLocationRangeFromPointRange(e), this.attachFiles(t.dataTransfer.files)) : void 0;\n },\n dragend: function dragend() {\n var t;\n return this.dragging ? (null != (t = this.responder) && t.setSelectedRange(this.dragging.range), this.dragging = null) : void 0;\n },\n compositionend: function compositionend() {\n return this.composing ? (this.composing = !1, this.scheduleRender()) : void 0;\n }\n }, u.prototype.keys = {\n ArrowLeft: function ArrowLeft() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"backward\") : void 0) : void 0;\n },\n ArrowRight: function ArrowRight() {\n var t, e;\n return (null != (t = this.responder) ? t.shouldManageMovingCursorInDirection(\"forward\") : void 0) ? (this.event.preventDefault(), null != (e = this.responder) ? e.moveCursorInDirection(\"forward\") : void 0) : void 0;\n },\n Backspace: function Backspace() {\n var t, e, n;\n return (null != (t = this.responder) ? t.shouldManageDeletingInDirection(\"backward\") : void 0) ? (this.event.preventDefault(), null != (e = this.delegate) && e.inputControllerWillPerformTyping(), null != (n = this.responder) && n.deleteInDirection(\"backward\"), this.render()) : void 0;\n },\n Tab: function Tab() {\n var t, e;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.increaseNestingLevel(), this.render()) : void 0;\n },\n \"Tab+Shift\": function TabShift() {\n var t, e;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? (this.event.preventDefault(), null != (e = this.responder) && e.decreaseNestingLevel(), this.render()) : void 0;\n }\n }, u.prototype.inputTypes = {\n deleteByComposition: function deleteByComposition() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteByCut: function deleteByCut() {\n return this.deleteInDirection(\"backward\");\n },\n deleteByDrag: function deleteByDrag() {\n return this.event.preventDefault(), this.withTargetDOMRange(function () {\n var t;\n return this.deleteByDragRange = null != (t = this.responder) ? t.getSelectedRange() : void 0;\n });\n },\n deleteCompositionText: function deleteCompositionText() {\n return this.deleteInDirection(\"backward\", {\n recordUndoEntry: !1\n });\n },\n deleteContent: function deleteContent() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentBackward: function deleteContentBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteContentForward: function deleteContentForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteEntireSoftLine: function deleteEntireSoftLine() {\n return this.deleteInDirection(\"forward\");\n },\n deleteHardLineBackward: function deleteHardLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteHardLineForward: function deleteHardLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteSoftLineBackward: function deleteSoftLineBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteSoftLineForward: function deleteSoftLineForward() {\n return this.deleteInDirection(\"forward\");\n },\n deleteWordBackward: function deleteWordBackward() {\n return this.deleteInDirection(\"backward\");\n },\n deleteWordForward: function deleteWordForward() {\n return this.deleteInDirection(\"forward\");\n },\n formatBackColor: function formatBackColor() {\n return this.activateAttributeIfSupported(\"backgroundColor\", this.event.data);\n },\n formatBold: function formatBold() {\n return this.toggleAttributeIfSupported(\"bold\");\n },\n formatFontColor: function formatFontColor() {\n return this.activateAttributeIfSupported(\"color\", this.event.data);\n },\n formatFontName: function formatFontName() {\n return this.activateAttributeIfSupported(\"font\", this.event.data);\n },\n formatIndent: function formatIndent() {\n var t;\n return (null != (t = this.responder) ? t.canIncreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.increaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatItalic: function formatItalic() {\n return this.toggleAttributeIfSupported(\"italic\");\n },\n formatJustifyCenter: function formatJustifyCenter() {\n return this.toggleAttributeIfSupported(\"justifyCenter\");\n },\n formatJustifyFull: function formatJustifyFull() {\n return this.toggleAttributeIfSupported(\"justifyFull\");\n },\n formatJustifyLeft: function formatJustifyLeft() {\n return this.toggleAttributeIfSupported(\"justifyLeft\");\n },\n formatJustifyRight: function formatJustifyRight() {\n return this.toggleAttributeIfSupported(\"justifyRight\");\n },\n formatOutdent: function formatOutdent() {\n var t;\n return (null != (t = this.responder) ? t.canDecreaseNestingLevel() : void 0) ? this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.decreaseNestingLevel() : void 0;\n }) : void 0;\n },\n formatRemove: function formatRemove() {\n return this.withTargetDOMRange(function () {\n var t, e, n, i;\n i = [];\n\n for (t in null != (e = this.responder) ? e.getCurrentAttributes() : void 0) {\n i.push(null != (n = this.responder) ? n.removeCurrentAttribute(t) : void 0);\n }\n\n return i;\n });\n },\n formatSetBlockTextDirection: function formatSetBlockTextDirection() {\n return this.activateAttributeIfSupported(\"blockDir\", this.event.data);\n },\n formatSetInlineTextDirection: function formatSetInlineTextDirection() {\n return this.activateAttributeIfSupported(\"textDir\", this.event.data);\n },\n formatStrikeThrough: function formatStrikeThrough() {\n return this.toggleAttributeIfSupported(\"strike\");\n },\n formatSubscript: function formatSubscript() {\n return this.toggleAttributeIfSupported(\"sub\");\n },\n formatSuperscript: function formatSuperscript() {\n return this.toggleAttributeIfSupported(\"sup\");\n },\n formatUnderline: function formatUnderline() {\n return this.toggleAttributeIfSupported(\"underline\");\n },\n historyRedo: function historyRedo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformRedo() : void 0;\n },\n historyUndo: function historyUndo() {\n var t;\n return null != (t = this.delegate) ? t.inputControllerWillPerformUndo() : void 0;\n },\n insertCompositionText: function insertCompositionText() {\n return this.composing = !0, this.insertString(this.event.data);\n },\n insertFromComposition: function insertFromComposition() {\n return this.composing = !1, this.insertString(this.event.data);\n },\n insertFromDrop: function insertFromDrop() {\n var t, e;\n return (t = this.deleteByDragRange) ? (this.deleteByDragRange = null, null != (e = this.delegate) && e.inputControllerWillMoveText(), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.moveTextFromRange(t) : void 0;\n })) : void 0;\n },\n insertFromPaste: function insertFromPaste() {\n var n, i, o, r, s, a, u, c, l, h;\n return n = this.event.dataTransfer, s = {\n dataTransfer: n\n }, (i = n.getData(\"URL\")) ? (s.type = \"URL\", s.href = i, s.string = (r = n.getData(\"public.url-name\")) ? e.squishBreakableWhitespace(r).trim() : i, null != (a = this.delegate) && a.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertText(e.Text.textForStringWithAttributes(s.string, {\n href: s.href\n })) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : t(n) ? (s.type = \"text/plain\", s.string = n.getData(\"text/plain\"), null != (u = this.delegate) && u.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertString(s.string) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (o = n.getData(\"text/html\")) ? (s.type = \"text/html\", s.html = o, null != (c = this.delegate) && c.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertHTML(s.html) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : (null != (l = n.files) ? l.length : void 0) ? (s.type = \"File\", s.file = n.files[0], null != (h = this.delegate) && h.inputControllerWillPaste(s), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertFile(s.file) : void 0;\n }), this.afterRender = function (t) {\n return function () {\n var e;\n return null != (e = t.delegate) ? e.inputControllerDidPaste(s) : void 0;\n };\n }(this)) : void 0;\n },\n insertFromYank: function insertFromYank() {\n return this.insertString(this.event.data);\n },\n insertLineBreak: function insertLineBreak() {\n return this.insertString(\"\\n\");\n },\n insertLink: function insertLink() {\n return this.activateAttributeIfSupported(\"href\", this.event.data);\n },\n insertOrderedList: function insertOrderedList() {\n return this.toggleAttributeIfSupported(\"number\");\n },\n insertParagraph: function insertParagraph() {\n var t;\n return null != (t = this.delegate) && t.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var t;\n return null != (t = this.responder) ? t.insertLineBreak() : void 0;\n });\n },\n insertReplacementText: function insertReplacementText() {\n return this.insertString(this.event.dataTransfer.getData(\"text/plain\"), {\n updatePosition: !1\n });\n },\n insertText: function insertText() {\n var t, e;\n return this.insertString(null != (t = this.event.data) ? t : null != (e = this.event.dataTransfer) ? e.getData(\"text/plain\") : void 0);\n },\n insertTranspose: function insertTranspose() {\n return this.insertString(this.event.data);\n },\n insertUnorderedList: function insertUnorderedList() {\n return this.toggleAttributeIfSupported(\"bullet\");\n }\n }, u.prototype.insertString = function (t, e) {\n var n;\n return null == t && (t = \"\"), null != (n = this.delegate) && n.inputControllerWillPerformTyping(), this.withTargetDOMRange(function () {\n var n;\n return null != (n = this.responder) ? n.insertString(t, e) : void 0;\n });\n }, u.prototype.toggleAttributeIfSupported = function (t) {\n var n;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (n = this.delegate) && n.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.toggleCurrentAttribute(t) : void 0;\n })) : void 0;\n }, u.prototype.activateAttributeIfSupported = function (t, n) {\n var i;\n return a.call(e.getAllAttributeNames(), t) >= 0 ? (null != (i = this.delegate) && i.inputControllerWillPerformFormatting(t), this.withTargetDOMRange(function () {\n var e;\n return null != (e = this.responder) ? e.setCurrentAttribute(t, n) : void 0;\n })) : void 0;\n }, u.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r;\n return o = (null != e ? e : {\n recordUndoEntry: !0\n }).recordUndoEntry, o && null != (r = this.delegate) && r.inputControllerWillPerformTyping(), i = function (e) {\n return function () {\n var n;\n return null != (n = e.responder) ? n.deleteInDirection(t) : void 0;\n };\n }(this), (n = this.getTargetDOMRange({\n minLength: 2\n })) ? this.withTargetDOMRange(n, i) : i();\n }, u.prototype.withTargetDOMRange = function (t, n) {\n var i;\n return \"function\" == typeof t && (n = t, t = this.getTargetDOMRange()), t ? null != (i = this.responder) ? i.withTargetDOMRange(t, n.bind(this)) : void 0 : (e.selectionChangeObserver.reset(), n.call(this));\n }, u.prototype.getTargetDOMRange = function (t) {\n var e, n, i, o;\n return i = (null != t ? t : {\n minLength: 0\n }).minLength, (o = \"function\" == typeof (e = this.event).getTargetRanges ? e.getTargetRanges() : void 0) && o.length && (n = f(o[0]), 0 === i || n.toString().length >= i) ? n : void 0;\n }, f = function f(t) {\n var e;\n return e = document.createRange(), e.setStart(t.startContainer, t.startOffset), e.setEnd(t.endContainer, t.endOffset), e;\n }, u.prototype.withEvent = function (t, e) {\n var n;\n this.event = t;\n\n try {\n n = e.call(this);\n } finally {\n this.event = null;\n }\n\n return n;\n }, c = function c(t) {\n var e, n;\n return a.call(null != (e = null != (n = t.dataTransfer) ? n.types : void 0) ? e : [], \"Files\") >= 0;\n }, h = function h(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"Files\") >= 0 && 1 === e.types.length && e.files.length >= 1 : void 0;\n }, p = function p(t) {\n var e;\n return (e = t.clipboardData) ? a.call(e.types, \"text/plain\") >= 0 && 1 === e.types.length : void 0;\n }, l = function l(t) {\n var e;\n return e = [], t.altKey && e.push(\"alt\"), t.shiftKey && e.push(\"shift\"), e.push(t.key), e;\n }, d = function d(t) {\n return {\n x: t.clientX,\n y: t.clientY\n };\n }, u;\n }(e.InputController);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l = function l(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n n = e.defer, i = e.escapeHTML, o = e.handleEvent, a = e.makeElement, c = e.tagName, u = e.config, s = u.lang, t = u.css, r = u.keyNames, e.AttachmentEditorController = function (u) {\n function p(t, e, n, i) {\n this.attachmentPiece = t, this.element = e, this.container = n, this.options = null != i ? i : {}, this.didBlurCaption = l(this.didBlurCaption, this), this.didChangeCaption = l(this.didChangeCaption, this), this.didInputCaption = l(this.didInputCaption, this), this.didKeyDownCaption = l(this.didKeyDownCaption, this), this.didClickActionButton = l(this.didClickActionButton, this), this.didClickToolbar = l(this.didClickToolbar, this), this.attachment = this.attachmentPiece.attachment, \"a\" === c(this.element) && (this.element = this.element.firstChild), this.install();\n }\n\n var d;\n return h(p, u), d = function d(t) {\n return function () {\n var e;\n return e = t.apply(this, arguments), e[\"do\"](), null == this.undos && (this.undos = []), this.undos.push(e.undo);\n };\n }, p.prototype.install = function () {\n return this.makeElementMutable(), this.addToolbar(), this.attachment.isPreviewable() ? this.installCaptionEditor() : void 0;\n }, p.prototype.uninstall = function () {\n var t, e;\n\n for (this.savePendingCaption(); e = this.undos.pop();) {\n e();\n }\n\n return null != (t = this.delegate) ? t.didUninstallAttachmentEditor(this) : void 0;\n }, p.prototype.savePendingCaption = function () {\n var t, e, n;\n return null != this.pendingCaption ? (t = this.pendingCaption, this.pendingCaption = null, t ? null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestUpdatingAttributesForAttachment ? e.attachmentEditorDidRequestUpdatingAttributesForAttachment({\n caption: t\n }, this.attachment) : void 0 : null != (n = this.delegate) && \"function\" == typeof n.attachmentEditorDidRequestRemovingAttributeForAttachment ? n.attachmentEditorDidRequestRemovingAttributeForAttachment(\"caption\", this.attachment) : void 0) : void 0;\n }, p.prototype.makeElementMutable = d(function () {\n return {\n \"do\": function (t) {\n return function () {\n return t.element.dataset.trixMutable = !0;\n };\n }(this),\n undo: function (t) {\n return function () {\n return delete t.element.dataset.trixMutable;\n };\n }(this)\n };\n }), p.prototype.addToolbar = d(function () {\n var n, r, u;\n return n = a({\n tagName: \"div\",\n className: t.attachmentToolbar,\n data: {\n trixMutable: !0\n }\n }), n.innerHTML = '
\\n \\n \\n \\n
\", this.attachment.isPreviewable() && (r = i(this.attachment.getFilename()), u = i(this.attachment.getFormattedFilesize()), n.innerHTML += '
\\n \\n ' + r + '\\n ' + u + \"\\n \\n
\"), o(\"click\", {\n onElement: n,\n withCallback: this.didClickToolbar\n }), o(\"click\", {\n onElement: n,\n matchingSelector: \"[data-trix-action]\",\n withCallback: this.didClickActionButton\n }), {\n \"do\": function (t) {\n return function () {\n return t.element.appendChild(n);\n };\n }(this),\n undo: function () {\n return function () {\n return e.removeNode(n);\n };\n }(this)\n };\n }), p.prototype.installCaptionEditor = d(function () {\n var i, r, u, c, l;\n return c = a({\n tagName: \"textarea\",\n className: t.attachmentCaptionEditor,\n attributes: {\n placeholder: s.captionPlaceholder\n },\n data: {\n trixMutable: !0\n }\n }), c.value = this.attachmentPiece.getCaption(), l = c.cloneNode(), l.classList.add(\"trix-autoresize-clone\"), l.tabIndex = -1, i = function i() {\n return l.value = c.value, c.style.height = l.scrollHeight + \"px\";\n }, o(\"input\", {\n onElement: c,\n withCallback: i\n }), o(\"input\", {\n onElement: c,\n withCallback: this.didInputCaption\n }), o(\"keydown\", {\n onElement: c,\n withCallback: this.didKeyDownCaption\n }), o(\"change\", {\n onElement: c,\n withCallback: this.didChangeCaption\n }), o(\"blur\", {\n onElement: c,\n withCallback: this.didBlurCaption\n }), u = this.element.querySelector(\"figcaption\"), r = u.cloneNode(), {\n \"do\": function (e) {\n return function () {\n return u.style.display = \"none\", r.appendChild(c), r.appendChild(l), r.classList.add(t.attachmentCaption + \"--editing\"), u.parentElement.insertBefore(r, u), i(), e.options.editCaption ? n(function () {\n return c.focus();\n }) : void 0;\n };\n }(this),\n undo: function undo() {\n return e.removeNode(r), u.style.display = null;\n }\n };\n }), p.prototype.didClickToolbar = function (t) {\n return t.preventDefault(), t.stopPropagation();\n }, p.prototype.didClickActionButton = function (t) {\n var e, n;\n\n switch (e = t.target.getAttribute(\"data-trix-action\")) {\n case \"remove\":\n return null != (n = this.delegate) ? n.attachmentEditorDidRequestRemovalOfAttachment(this.attachment) : void 0;\n }\n }, p.prototype.didKeyDownCaption = function (t) {\n var e;\n return \"return\" === r[t.keyCode] ? (t.preventDefault(), this.savePendingCaption(), null != (e = this.delegate) && \"function\" == typeof e.attachmentEditorDidRequestDeselectingAttachment ? e.attachmentEditorDidRequestDeselectingAttachment(this.attachment) : void 0) : void 0;\n }, p.prototype.didInputCaption = function (t) {\n return this.pendingCaption = t.target.value.replace(/\\s/g, \" \").trim();\n }, p.prototype.didChangeCaption = function () {\n return this.savePendingCaption();\n }, p.prototype.didBlurCaption = function () {\n return this.savePendingCaption();\n }, p;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.config.css, e.AttachmentView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.attachment = this.object, this.attachment.uploadProgressDelegate = this, this.attachmentPiece = this.options.piece;\n }\n\n var a;\n return o(s, r), s.attachmentSelector = \"[data-trix-attachment]\", s.prototype.createContentNodes = function () {\n return [];\n }, s.prototype.createNodes = function () {\n var e, n, o, r, s, u, c;\n if (e = r = i({\n tagName: \"figure\",\n className: this.getClassName(),\n data: this.getData(),\n editable: !1\n }), (n = this.getHref()) && (r = i({\n tagName: \"a\",\n editable: !1,\n attributes: {\n href: n,\n tabindex: -1\n }\n }), e.appendChild(r)), this.attachment.hasContent()) r.innerHTML = this.attachment.getContent();else for (c = this.createContentNodes(), o = 0, s = c.length; s > o; o++) {\n u = c[o], r.appendChild(u);\n }\n return r.appendChild(this.createCaptionElement()), this.attachment.isPending() && (this.progressElement = i({\n tagName: \"progress\",\n attributes: {\n \"class\": t.attachmentProgress,\n value: this.attachment.getUploadProgress(),\n max: 100\n },\n data: {\n trixMutable: !0,\n trixStoreKey: [\"progressElement\", this.attachment.id].join(\"/\")\n }\n }), e.appendChild(this.progressElement)), [a(\"left\"), e, a(\"right\")];\n }, s.prototype.createCaptionElement = function () {\n var e, n, o, r, s, a, u;\n return o = i({\n tagName: \"figcaption\",\n className: t.attachmentCaption\n }), (e = this.attachmentPiece.getCaption()) ? (o.classList.add(t.attachmentCaption + \"--edited\"), o.textContent = e) : (n = this.getCaptionConfig(), n.name && (r = this.attachment.getFilename()), n.size && (a = this.attachment.getFormattedFilesize()), r && (s = i({\n tagName: \"span\",\n className: t.attachmentName,\n textContent: r\n }), o.appendChild(s)), a && (r && o.appendChild(document.createTextNode(\" \")), u = i({\n tagName: \"span\",\n className: t.attachmentSize,\n textContent: a\n }), o.appendChild(u))), o;\n }, s.prototype.getClassName = function () {\n var e, n;\n return n = [t.attachment, t.attachment + \"--\" + this.attachment.getType()], (e = this.attachment.getExtension()) && n.push(t.attachment + \"--\" + e), n.join(\" \");\n }, s.prototype.getData = function () {\n var t, e;\n return e = {\n trixAttachment: JSON.stringify(this.attachment),\n trixContentType: this.attachment.getContentType(),\n trixId: this.attachment.id\n }, t = this.attachmentPiece.attributes, t.isEmpty() || (e.trixAttributes = JSON.stringify(t)), this.attachment.isPending() && (e.trixSerialize = !1), e;\n }, s.prototype.getHref = function () {\n return n(this.attachment.getContent(), \"a\") ? void 0 : this.attachment.getHref();\n }, s.prototype.getCaptionConfig = function () {\n var t, n, i;\n return i = this.attachment.getType(), t = e.copyObject(null != (n = e.config.attachments[i]) ? n.caption : void 0), \"file\" === i && (t.name = !0), t;\n }, s.prototype.findProgressElement = function () {\n var t;\n return null != (t = this.findElement()) ? t.querySelector(\"progress\") : void 0;\n }, a = function a(t) {\n return i({\n tagName: \"span\",\n textContent: e.ZERO_WIDTH_SPACE,\n data: {\n trixCursorTarget: t,\n trixSerialize: !1\n }\n });\n }, s.prototype.attachmentDidChangeUploadProgress = function () {\n var t, e;\n return e = this.attachment.getUploadProgress(), null != (t = this.findProgressElement()) ? t.value = e : void 0;\n }, s;\n }(e.ObjectView), n = function n(t, e) {\n var n;\n return n = i(\"div\"), n.innerHTML = null != t ? t : \"\", n.querySelector(e);\n };\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.makeElement, e.PreviewableAttachmentView = function (i) {\n function o() {\n o.__super__.constructor.apply(this, arguments), this.attachment.previewDelegate = this;\n }\n\n return n(o, i), o.prototype.createContentNodes = function () {\n return this.image = t({\n tagName: \"img\",\n attributes: {\n src: \"\"\n },\n data: {\n trixMutable: !0\n }\n }), this.refresh(this.image), [this.image];\n }, o.prototype.createCaptionElement = function () {\n var t;\n return t = o.__super__.createCaptionElement.apply(this, arguments), t.textContent || t.setAttribute(\"data-trix-placeholder\", e.config.lang.captionPlaceholder), t;\n }, o.prototype.refresh = function (t) {\n var e;\n return null == t && (t = null != (e = this.findElement()) ? e.querySelector(\"img\") : void 0), t ? this.updateAttributesForImage(t) : void 0;\n }, o.prototype.updateAttributesForImage = function (t) {\n var e, n, i, o, r, s;\n return r = this.attachment.getURL(), n = this.attachment.getPreviewURL(), t.src = n || r, n === r ? t.removeAttribute(\"data-trix-serialized-attributes\") : (i = JSON.stringify({\n src: r\n }), t.setAttribute(\"data-trix-serialized-attributes\", i)), s = this.attachment.getWidth(), e = this.attachment.getHeight(), null != s && (t.width = s), null != e && (t.height = e), o = [\"imageElement\", this.attachment.id, t.src, t.width, t.height].join(\"/\"), t.dataset.trixStoreKey = o;\n }, o.prototype.attachmentDidChangeAttributes = function () {\n return this.refresh(this.image), this.refresh();\n }, o;\n }(e.AttachmentView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, t = e.findInnerElement, n = e.getTextConfig, e.PieceView = function (r) {\n function s() {\n var t;\n s.__super__.constructor.apply(this, arguments), this.piece = this.object, this.attributes = this.piece.getAttributes(), t = this.options, this.textConfig = t.textConfig, this.context = t.context, this.piece.attachment ? this.attachment = this.piece.attachment : this.string = this.piece.toString();\n }\n\n var a;\n return o(s, r), s.prototype.createNodes = function () {\n var e, n, i, o, r, s;\n\n if (s = this.attachment ? this.createAttachmentNodes() : this.createStringNodes(), e = this.createElement()) {\n for (i = t(e), n = 0, o = s.length; o > n; n++) {\n r = s[n], i.appendChild(r);\n }\n\n s = [e];\n }\n\n return s;\n }, s.prototype.createAttachmentNodes = function () {\n var t, n;\n return t = this.attachment.isPreviewable() ? e.PreviewableAttachmentView : e.AttachmentView, n = this.createChildView(t, this.piece.attachment, {\n piece: this.piece\n }), n.getNodes();\n }, s.prototype.createStringNodes = function () {\n var t, e, n, o, r, s, a, u, c, l;\n if (null != (u = this.textConfig) ? u.plaintext : void 0) return [document.createTextNode(this.string)];\n\n for (a = [], c = this.string.split(\"\\n\"), n = e = 0, o = c.length; o > e; n = ++e) {\n l = c[n], n > 0 && (t = i(\"br\"), a.push(t)), (r = l.length) && (s = document.createTextNode(this.preserveSpaces(l)), a.push(s));\n }\n\n return a;\n }, s.prototype.createElement = function () {\n var t, e, o, r, s, a, u, c, l;\n c = {}, a = this.attributes;\n\n for (r in a) {\n if (l = a[r], (t = n(r)) && (t.tagName && (s = i(t.tagName), o ? (o.appendChild(s), o = s) : e = o = s), t.styleProperty && (c[t.styleProperty] = l), t.style)) {\n u = t.style;\n\n for (r in u) {\n l = u[r], c[r] = l;\n }\n }\n }\n\n if (Object.keys(c).length) {\n null == e && (e = i(\"span\"));\n\n for (r in c) {\n l = c[r], e.style[r] = l;\n }\n }\n\n return e;\n }, s.prototype.createContainerElement = function () {\n var t, e, o, r, s;\n r = this.attributes;\n\n for (o in r) {\n if (s = r[o], (e = n(o)) && e.groupTagName) return t = {}, t[o] = s, i(e.groupTagName, t);\n }\n }, a = e.NON_BREAKING_SPACE, s.prototype.preserveSpaces = function (t) {\n return this.context.isLast && (t = t.replace(/\\ $/, a)), t = t.replace(/(\\S)\\ {3}(\\S)/g, \"$1 \" + a + \" $2\").replace(/\\ {2}/g, a + \" \").replace(/\\ {2}/g, \" \" + a), (this.context.isFirst || this.context.followsWhitespace) && (t = t.replace(/^\\ /, a)), t;\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t = function t(_t11, e) {\n function i() {\n this.constructor = _t11;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t11[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t11.prototype = new i(), _t11.__super__ = e.prototype, _t11;\n },\n n = {}.hasOwnProperty;\n\n e.TextView = function (n) {\n function i() {\n i.__super__.constructor.apply(this, arguments), this.text = this.object, this.textConfig = this.options.textConfig;\n }\n\n var o;\n return t(i, n), i.prototype.createNodes = function () {\n var t, n, i, r, s, a, u, c, l, h;\n\n for (a = [], c = e.ObjectGroup.groupObjects(this.getPieces()), r = c.length - 1, i = n = 0, s = c.length; s > n; i = ++n) {\n u = c[i], t = {}, 0 === i && (t.isFirst = !0), i === r && (t.isLast = !0), o(l) && (t.followsWhitespace = !0), h = this.findOrCreateCachedChildView(e.PieceView, u, {\n textConfig: this.textConfig,\n context: t\n }), a.push.apply(a, h.getNodes()), l = u;\n }\n\n return a;\n }, i.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.text.getPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], n.hasAttribute(\"blockBreak\") || o.push(n);\n }\n\n return o;\n }, o = function o(t) {\n return /\\s$/.test(null != t ? t.toString() : void 0);\n }, i;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty;\n\n i = e.makeElement, n = e.getBlockConfig, t = e.config.css, e.BlockView = function (r) {\n function s() {\n s.__super__.constructor.apply(this, arguments), this.block = this.object, this.attributes = this.block.getAttributes();\n }\n\n return o(s, r), s.prototype.createNodes = function () {\n var t, o, r, s, a, u, c, l, h;\n if (t = document.createComment(\"block\"), u = [t], this.block.isEmpty() ? u.push(i(\"br\")) : (l = null != (c = n(this.block.getLastAttribute())) ? c.text : void 0, h = this.findOrCreateCachedChildView(e.TextView, this.block.text, {\n textConfig: l\n }), u.push.apply(u, h.getNodes()), this.shouldAddExtraNewlineElement() && u.push(i(\"br\"))), this.attributes.length) return u;\n\n for (o = i(e.config.blockAttributes[\"default\"].tagName), r = 0, s = u.length; s > r; r++) {\n a = u[r], o.appendChild(a);\n }\n\n return [o];\n }, s.prototype.createContainerElement = function (e) {\n var o, r, s, a;\n return o = this.attributes[e], a = n(o).tagName, r = {\n tagName: a\n }, \"attachmentGallery\" === o && (s = this.block.getBlockBreakPosition(), r.className = t.attachmentGallery + \" \" + t.attachmentGallery + \"--\" + s), i(r);\n }, s.prototype.shouldAddExtraNewlineElement = function () {\n return /\\n\\n$/.test(this.block.toString());\n }, s;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n t = e.defer, n = e.makeElement, e.DocumentView = function (o) {\n function r() {\n r.__super__.constructor.apply(this, arguments), this.element = this.options.element, this.elementStore = new e.ElementStore(), this.setDocument(this.object);\n }\n\n var s, a, u;\n return i(r, o), r.render = function (t) {\n var e, i;\n return e = n(\"div\"), i = new this(t, {\n element: e\n }), i.render(), i.sync(), e;\n }, r.prototype.setDocument = function (t) {\n return t.isEqualTo(this.document) ? void 0 : this.document = this.object = t;\n }, r.prototype.render = function () {\n var t, i, o, r, s, a, u;\n\n if (this.childViews = [], this.shadowElement = n(\"div\"), !this.document.isEmpty()) {\n for (s = e.ObjectGroup.groupObjects(this.document.getBlocks(), {\n asTree: !0\n }), a = [], t = 0, i = s.length; i > t; t++) {\n r = s[t], u = this.findOrCreateCachedChildView(e.BlockView, r), a.push(function () {\n var t, e, n, i;\n\n for (n = u.getNodes(), i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(this.shadowElement.appendChild(o));\n }\n\n return i;\n }.call(this));\n }\n\n return a;\n }\n }, r.prototype.isSynced = function () {\n return s(this.shadowElement, this.element);\n }, r.prototype.sync = function () {\n var t;\n\n for (t = this.createDocumentFragmentForSync(); this.element.lastChild;) {\n this.element.removeChild(this.element.lastChild);\n }\n\n return this.element.appendChild(t), this.didSync();\n }, r.prototype.didSync = function () {\n return this.elementStore.reset(a(this.element)), t(function (t) {\n return function () {\n return t.garbageCollectCachedViews();\n };\n }(this));\n }, r.prototype.createDocumentFragmentForSync = function () {\n var t, e, n, i, o, r, s, u, c, l;\n\n for (e = document.createDocumentFragment(), u = this.shadowElement.childNodes, n = 0, o = u.length; o > n; n++) {\n s = u[n], e.appendChild(s.cloneNode(!0));\n }\n\n for (c = a(e), i = 0, r = c.length; r > i; i++) {\n t = c[i], (l = this.elementStore.remove(t)) && t.parentNode.replaceChild(l, t);\n }\n\n return e;\n }, a = function a(t) {\n return t.querySelectorAll(\"[data-trix-store-key]\");\n }, s = function s(t, e) {\n return u(t.innerHTML) === u(e.innerHTML);\n }, u = function u(t) {\n return t.replace(/ /g, \" \");\n }, r;\n }(e.ObjectView);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n a = function a(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n u.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n u = {}.hasOwnProperty;\n\n i = e.findClosestElementFromNode, o = e.handleEvent, r = e.innerElementIsActive, n = e.defer, t = e.AttachmentView.attachmentSelector, e.CompositionController = function (u) {\n function c(n, i) {\n this.element = n, this.composition = i, this.didClickAttachment = s(this.didClickAttachment, this), this.didBlur = s(this.didBlur, this), this.didFocus = s(this.didFocus, this), this.documentView = new e.DocumentView(this.composition.document, {\n element: this.element\n }), o(\"focus\", {\n onElement: this.element,\n withCallback: this.didFocus\n }), o(\"blur\", {\n onElement: this.element,\n withCallback: this.didBlur\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a[contenteditable=false]\",\n preventDefault: !0\n }), o(\"mousedown\", {\n onElement: this.element,\n matchingSelector: t,\n withCallback: this.didClickAttachment\n }), o(\"click\", {\n onElement: this.element,\n matchingSelector: \"a\" + t,\n preventDefault: !0\n });\n }\n\n return a(c, u), c.prototype.didFocus = function () {\n var t, e, n;\n return t = function (t) {\n return function () {\n var e;\n return t.focused ? void 0 : (t.focused = !0, null != (e = t.delegate) && \"function\" == typeof e.compositionControllerDidFocus ? e.compositionControllerDidFocus() : void 0);\n };\n }(this), null != (e = null != (n = this.blurPromise) ? n.then(t) : void 0) ? e : t();\n }, c.prototype.didBlur = function () {\n return this.blurPromise = new Promise(function (t) {\n return function (e) {\n return n(function () {\n var n;\n return r(t.element) || (t.focused = null, null != (n = t.delegate) && \"function\" == typeof n.compositionControllerDidBlur && n.compositionControllerDidBlur()), t.blurPromise = null, e();\n });\n };\n }(this));\n }, c.prototype.didClickAttachment = function (t, e) {\n var n, o, r;\n return n = this.findAttachmentForElement(e), o = null != i(t.target, {\n matchingSelector: \"figcaption\"\n }), null != (r = this.delegate) && \"function\" == typeof r.compositionControllerDidSelectAttachment ? r.compositionControllerDidSelectAttachment(n, {\n editCaption: o\n }) : void 0;\n }, c.prototype.getSerializableElement = function () {\n return this.isEditingAttachment() ? this.documentView.shadowElement : this.element;\n }, c.prototype.render = function () {\n var t, e, n;\n return this.revision !== this.composition.revision && (this.documentView.setDocument(this.composition.document), this.documentView.render(), this.revision = this.composition.revision), this.canSyncDocumentView() && !this.documentView.isSynced() && (null != (t = this.delegate) && \"function\" == typeof t.compositionControllerWillSyncDocumentView && t.compositionControllerWillSyncDocumentView(), this.documentView.sync(), null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidSyncDocumentView && e.compositionControllerDidSyncDocumentView()), null != (n = this.delegate) && \"function\" == typeof n.compositionControllerDidRender ? n.compositionControllerDidRender() : void 0;\n }, c.prototype.rerenderViewForObject = function (t) {\n return this.invalidateViewForObject(t), this.render();\n }, c.prototype.invalidateViewForObject = function (t) {\n return this.documentView.invalidateViewForObject(t);\n }, c.prototype.isViewCachingEnabled = function () {\n return this.documentView.isViewCachingEnabled();\n }, c.prototype.enableViewCaching = function () {\n return this.documentView.enableViewCaching();\n }, c.prototype.disableViewCaching = function () {\n return this.documentView.disableViewCaching();\n }, c.prototype.refreshViewCache = function () {\n return this.documentView.garbageCollectCachedViews();\n }, c.prototype.isEditingAttachment = function () {\n return null != this.attachmentEditor;\n }, c.prototype.installAttachmentEditorForAttachment = function (t, n) {\n var i, o, r;\n if ((null != (r = this.attachmentEditor) ? r.attachment : void 0) !== t && (o = this.documentView.findElementForObject(t))) return this.uninstallAttachmentEditor(), i = this.composition.document.getAttachmentPieceForAttachment(t), this.attachmentEditor = new e.AttachmentEditorController(i, o, this.element, n), this.attachmentEditor.delegate = this;\n }, c.prototype.uninstallAttachmentEditor = function () {\n var t;\n return null != (t = this.attachmentEditor) ? t.uninstall() : void 0;\n }, c.prototype.didUninstallAttachmentEditor = function () {\n return this.attachmentEditor = null, this.render();\n }, c.prototype.attachmentEditorDidRequestUpdatingAttributesForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.updateAttributesForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovingAttributeForAttachment = function (t, e) {\n var n;\n return null != (n = this.delegate) && \"function\" == typeof n.compositionControllerWillUpdateAttachment && n.compositionControllerWillUpdateAttachment(e), this.composition.removeAttributeForAttachment(t, e);\n }, c.prototype.attachmentEditorDidRequestRemovalOfAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestRemovalOfAttachment ? e.compositionControllerDidRequestRemovalOfAttachment(t) : void 0;\n }, c.prototype.attachmentEditorDidRequestDeselectingAttachment = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionControllerDidRequestDeselectingAttachment ? e.compositionControllerDidRequestDeselectingAttachment(t) : void 0;\n }, c.prototype.canSyncDocumentView = function () {\n return !this.isEditingAttachment();\n }, c.prototype.findAttachmentForElement = function (t) {\n return this.composition.document.getAttachmentById(parseInt(t.dataset.trixId, 10));\n }, c;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty;\n\n n = e.handleEvent, i = e.triggerEvent, t = e.findClosestElementFromNode, e.ToolbarController = function (e) {\n function s(t) {\n this.element = t, this.didKeyDownDialogInput = o(this.didKeyDownDialogInput, this), this.didClickDialogButton = o(this.didClickDialogButton, this), this.didClickAttributeButton = o(this.didClickAttributeButton, this), this.didClickActionButton = o(this.didClickActionButton, this), this.attributes = {}, this.actions = {}, this.resetDialogInputs(), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: a,\n withCallback: this.didClickActionButton\n }), n(\"mousedown\", {\n onElement: this.element,\n matchingSelector: c,\n withCallback: this.didClickAttributeButton\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: v,\n preventDefault: !0\n }), n(\"click\", {\n onElement: this.element,\n matchingSelector: l,\n withCallback: this.didClickDialogButton\n }), n(\"keydown\", {\n onElement: this.element,\n matchingSelector: h,\n withCallback: this.didKeyDownDialogInput\n });\n }\n\n var a, u, c, l, h, p, d, f, g, m, v;\n return r(s, e), c = \"[data-trix-attribute]\", a = \"[data-trix-action]\", v = c + \", \" + a, p = \"[data-trix-dialog]\", u = p + \"[data-trix-active]\", l = p + \" [data-trix-method]\", h = p + \" [data-trix-input]\", s.prototype.didClickActionButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = d(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) ? o.toolbarDidInvokeAction(n) : void 0;\n }, s.prototype.didClickAttributeButton = function (t, e) {\n var n, i, o;\n return null != (i = this.delegate) && i.toolbarDidClickButton(), t.preventDefault(), n = f(e), this.getDialog(n) ? this.toggleDialog(n) : null != (o = this.delegate) && o.toolbarDidToggleAttribute(n), this.refreshAttributeButtons();\n }, s.prototype.didClickDialogButton = function (e, n) {\n var i, o;\n return i = t(n, {\n matchingSelector: p\n }), o = n.getAttribute(\"data-trix-method\"), this[o].call(this, i);\n }, s.prototype.didKeyDownDialogInput = function (t, e) {\n var n, i;\n return 13 === t.keyCode && (t.preventDefault(), n = e.getAttribute(\"name\"), i = this.getDialog(n), this.setAttribute(i)), 27 === t.keyCode ? (t.preventDefault(), this.hideDialog()) : void 0;\n }, s.prototype.updateActions = function (t) {\n return this.actions = t, this.refreshActionButtons();\n }, s.prototype.refreshActionButtons = function () {\n return this.eachActionButton(function (t) {\n return function (e, n) {\n return e.disabled = t.actions[n] === !1;\n };\n }(this));\n }, s.prototype.eachActionButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(a), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, d(e)));\n }\n\n return r;\n }, s.prototype.updateAttributes = function (t) {\n return this.attributes = t, this.refreshAttributeButtons();\n }, s.prototype.refreshAttributeButtons = function () {\n return this.eachAttributeButton(function (t) {\n return function (e, n) {\n return e.disabled = t.attributes[n] === !1, t.attributes[n] || t.dialogIsVisible(n) ? (e.setAttribute(\"data-trix-active\", \"\"), e.classList.add(\"trix-active\")) : (e.removeAttribute(\"data-trix-active\"), e.classList.remove(\"trix-active\"));\n };\n }(this));\n }, s.prototype.eachAttributeButton = function (t) {\n var e, n, i, o, r;\n\n for (o = this.element.querySelectorAll(c), r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], r.push(t(e, f(e)));\n }\n\n return r;\n }, s.prototype.applyKeyboardCommand = function (t) {\n var e, n, o, r, s, a, u;\n\n for (s = JSON.stringify(t.sort()), u = this.element.querySelectorAll(\"[data-trix-key]\"), r = 0, a = u.length; a > r; r++) {\n if (e = u[r], o = e.getAttribute(\"data-trix-key\").split(\"+\"), n = JSON.stringify(o.sort()), n === s) return i(\"mousedown\", {\n onElement: e\n }), !0;\n }\n\n return !1;\n }, s.prototype.dialogIsVisible = function (t) {\n var e;\n return (e = this.getDialog(t)) ? e.hasAttribute(\"data-trix-active\") : void 0;\n }, s.prototype.toggleDialog = function (t) {\n return this.dialogIsVisible(t) ? this.hideDialog() : this.showDialog(t);\n }, s.prototype.showDialog = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n\n for (this.hideDialog(), null != (a = this.delegate) && a.toolbarWillShowDialog(), i = this.getDialog(t), i.setAttribute(\"data-trix-active\", \"\"), i.classList.add(\"trix-active\"), u = i.querySelectorAll(\"input[disabled]\"), o = 0, s = u.length; s > o; o++) {\n n = u[o], n.removeAttribute(\"disabled\");\n }\n\n return (e = f(i)) && (r = m(i, t)) && (r.value = null != (c = this.attributes[e]) ? c : \"\", r.select()), null != (l = this.delegate) ? l.toolbarDidShowDialog(t) : void 0;\n }, s.prototype.setAttribute = function (t) {\n var e, n, i;\n return e = f(t), n = m(t, e), n.willValidate && !n.checkValidity() ? (n.setAttribute(\"data-trix-validate\", \"\"), n.classList.add(\"trix-validate\"), n.focus()) : (null != (i = this.delegate) && i.toolbarDidUpdateAttribute(e, n.value), this.hideDialog());\n }, s.prototype.removeAttribute = function (t) {\n var e, n;\n return e = f(t), null != (n = this.delegate) && n.toolbarDidRemoveAttribute(e), this.hideDialog();\n }, s.prototype.hideDialog = function () {\n var t, e;\n return (t = this.element.querySelector(u)) ? (t.removeAttribute(\"data-trix-active\"), t.classList.remove(\"trix-active\"), this.resetDialogInputs(), null != (e = this.delegate) ? e.toolbarDidHideDialog(g(t)) : void 0) : void 0;\n }, s.prototype.resetDialogInputs = function () {\n var t, e, n, i, o;\n\n for (i = this.element.querySelectorAll(h), o = [], t = 0, n = i.length; n > t; t++) {\n e = i[t], e.setAttribute(\"disabled\", \"disabled\"), e.removeAttribute(\"data-trix-validate\"), o.push(e.classList.remove(\"trix-validate\"));\n }\n\n return o;\n }, s.prototype.getDialog = function (t) {\n return this.element.querySelector(\"[data-trix-dialog=\" + t + \"]\");\n }, m = function m(t, e) {\n return null == e && (e = f(t)), t.querySelector(\"[data-trix-input][name='\" + e + \"']\");\n }, d = function d(t) {\n return t.getAttribute(\"data-trix-action\");\n }, f = function f(t) {\n var e;\n return null != (e = t.getAttribute(\"data-trix-attribute\")) ? e : t.getAttribute(\"data-trix-dialog-attribute\");\n }, g = function g(t) {\n return t.getAttribute(\"data-trix-dialog\");\n }, s;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t12, e) {\n function i() {\n this.constructor = _t12;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t12[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t12.prototype = new i(), _t12.__super__ = e.prototype, _t12;\n },\n n = {}.hasOwnProperty;\n\n e.ImagePreloadOperation = function (e) {\n function n(t) {\n this.url = t;\n }\n\n return t(n, e), n.prototype.perform = function (t) {\n var e;\n return e = new Image(), e.onload = function (n) {\n return function () {\n return e.width = n.width = e.naturalWidth, e.height = n.height = e.naturalHeight, t(!0, e);\n };\n }(this), e.onerror = function () {\n return t(!1);\n }, e.src = this.url;\n }, n;\n }(e.Operation);\n }.call(this), function () {\n var t = function t(_t13, e) {\n return function () {\n return _t13.apply(e, arguments);\n };\n },\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n e.Attachment = function (i) {\n function o(n) {\n null == n && (n = {}), this.releaseFile = t(this.releaseFile, this), o.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n), this.didChangeAttributes();\n }\n\n return n(o, i), o.previewablePattern = /^image(\\/(gif|png|jpe?g)|$)/, o.attachmentForFile = function (t) {\n var e, n;\n return n = this.attributesForFile(t), e = new this(n), e.setFile(t), e;\n }, o.attributesForFile = function (t) {\n return new e.Hash({\n filename: t.name,\n filesize: t.size,\n contentType: t.type\n });\n }, o.fromJSON = function (t) {\n return new this(t);\n }, o.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, o.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, o.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, o.prototype.setAttributes = function (t) {\n var e, n, i;\n return null == t && (t = {}), e = this.attributes.merge(t), this.attributes.isEqualTo(e) ? void 0 : (this.attributes = e, this.didChangeAttributes(), null != (n = this.previewDelegate) && \"function\" == typeof n.attachmentDidChangeAttributes && n.attachmentDidChangeAttributes(this), null != (i = this.delegate) && \"function\" == typeof i.attachmentDidChangeAttributes ? i.attachmentDidChangeAttributes(this) : void 0);\n }, o.prototype.didChangeAttributes = function () {\n return this.isPreviewable() ? this.preloadURL() : void 0;\n }, o.prototype.isPending = function () {\n return null != this.file && !(this.getURL() || this.getHref());\n }, o.prototype.isPreviewable = function () {\n return this.attributes.has(\"previewable\") ? this.attributes.get(\"previewable\") : this.constructor.previewablePattern.test(this.getContentType());\n }, o.prototype.getType = function () {\n return this.hasContent() ? \"content\" : this.isPreviewable() ? \"preview\" : \"file\";\n }, o.prototype.getURL = function () {\n return this.attributes.get(\"url\");\n }, o.prototype.getHref = function () {\n return this.attributes.get(\"href\");\n }, o.prototype.getFilename = function () {\n var t;\n return null != (t = this.attributes.get(\"filename\")) ? t : \"\";\n }, o.prototype.getFilesize = function () {\n return this.attributes.get(\"filesize\");\n }, o.prototype.getFormattedFilesize = function () {\n var t;\n return t = this.attributes.get(\"filesize\"), \"number\" == typeof t ? e.config.fileSize.formatter(t) : \"\";\n }, o.prototype.getExtension = function () {\n var t;\n return null != (t = this.getFilename().match(/\\.(\\w+)$/)) ? t[1].toLowerCase() : void 0;\n }, o.prototype.getContentType = function () {\n return this.attributes.get(\"contentType\");\n }, o.prototype.hasContent = function () {\n return this.attributes.has(\"content\");\n }, o.prototype.getContent = function () {\n return this.attributes.get(\"content\");\n }, o.prototype.getWidth = function () {\n return this.attributes.get(\"width\");\n }, o.prototype.getHeight = function () {\n return this.attributes.get(\"height\");\n }, o.prototype.getFile = function () {\n return this.file;\n }, o.prototype.setFile = function (t) {\n return this.file = t, this.isPreviewable() ? this.preloadFile() : void 0;\n }, o.prototype.releaseFile = function () {\n return this.releasePreloadedFile(), this.file = null;\n }, o.prototype.getUploadProgress = function () {\n var t;\n return null != (t = this.uploadProgress) ? t : 0;\n }, o.prototype.setUploadProgress = function (t) {\n var e;\n return this.uploadProgress !== t ? (this.uploadProgress = t, null != (e = this.uploadProgressDelegate) && \"function\" == typeof e.attachmentDidChangeUploadProgress ? e.attachmentDidChangeUploadProgress(this) : void 0) : void 0;\n }, o.prototype.toJSON = function () {\n return this.getAttributes();\n }, o.prototype.getCacheKey = function () {\n return [o.__super__.getCacheKey.apply(this, arguments), this.attributes.getCacheKey(), this.getPreviewURL()].join(\"/\");\n }, o.prototype.getPreviewURL = function () {\n return this.previewURL || this.preloadingURL;\n }, o.prototype.setPreviewURL = function (t) {\n var e, n;\n return t !== this.getPreviewURL() ? (this.previewURL = t, null != (e = this.previewDelegate) && \"function\" == typeof e.attachmentDidChangeAttributes && e.attachmentDidChangeAttributes(this), null != (n = this.delegate) && \"function\" == typeof n.attachmentDidChangePreviewURL ? n.attachmentDidChangePreviewURL(this) : void 0) : void 0;\n }, o.prototype.preloadURL = function () {\n return this.preload(this.getURL(), this.releaseFile);\n }, o.prototype.preloadFile = function () {\n return this.file ? (this.fileObjectURL = URL.createObjectURL(this.file), this.preload(this.fileObjectURL)) : void 0;\n }, o.prototype.releasePreloadedFile = function () {\n return this.fileObjectURL ? (URL.revokeObjectURL(this.fileObjectURL), this.fileObjectURL = null) : void 0;\n }, o.prototype.preload = function (t, n) {\n var i;\n return t && t !== this.getPreviewURL() ? (this.preloadingURL = t, i = new e.ImagePreloadOperation(t), i.then(function (e) {\n return function (i) {\n var o, r;\n return r = i.width, o = i.height, e.getWidth() && e.getHeight() || e.setAttributes({\n width: r,\n height: o\n }), e.preloadingURL = null, e.setPreviewURL(t), \"function\" == typeof n ? n() : void 0;\n };\n }(this))[\"catch\"](function (t) {\n return function () {\n return t.preloadingURL = null, \"function\" == typeof n ? n() : void 0;\n };\n }(this))) : void 0;\n }, o;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t14, e) {\n function i() {\n this.constructor = _t14;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t14[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t14.prototype = new i(), _t14.__super__ = e.prototype, _t14;\n },\n n = {}.hasOwnProperty;\n\n e.Piece = function (n) {\n function i(t, n) {\n null == n && (n = {}), i.__super__.constructor.apply(this, arguments), this.attributes = e.Hash.box(n);\n }\n\n return t(i, n), i.types = {}, i.registerType = function (t, e) {\n return e.type = t, this.types[t] = e;\n }, i.fromJSON = function (t) {\n var e;\n return (e = this.types[t.type]) ? e.fromJSON(t) : void 0;\n }, i.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.getValue(), t);\n }, i.prototype.copyWithAdditionalAttributes = function (t) {\n return this.copyWithAttributes(this.attributes.merge(t));\n }, i.prototype.copyWithoutAttribute = function (t) {\n return this.copyWithAttributes(this.attributes.remove(t));\n }, i.prototype.copy = function () {\n return this.copyWithAttributes(this.attributes);\n }, i.prototype.getAttribute = function (t) {\n return this.attributes.get(t);\n }, i.prototype.getAttributesHash = function () {\n return this.attributes;\n }, i.prototype.getAttributes = function () {\n return this.attributes.toObject();\n }, i.prototype.getCommonAttributes = function () {\n var t, e, n;\n return (n = pieceList.getPieceAtIndex(0)) ? (t = n.attributes, e = t.getKeys(), pieceList.eachPiece(function (n) {\n return e = t.getKeysCommonToHash(n.attributes), t = t.slice(e);\n }), t.toObject()) : {};\n }, i.prototype.hasAttribute = function (t) {\n return this.attributes.has(t);\n }, i.prototype.hasSameStringValueAsPiece = function (t) {\n return null != t && this.toString() === t.toString();\n }, i.prototype.hasSameAttributesAsPiece = function (t) {\n return null != t && (this.attributes === t.attributes || this.attributes.isEqualTo(t.attributes));\n }, i.prototype.isBlockBreak = function () {\n return !1;\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || this.hasSameConstructorAs(t) && this.hasSameStringValueAsPiece(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.isEmpty = function () {\n return 0 === this.length;\n }, i.prototype.isSerializable = function () {\n return !0;\n }, i.prototype.toJSON = function () {\n return {\n type: this.constructor.type,\n attributes: this.getAttributes()\n };\n }, i.prototype.contentsForInspection = function () {\n return {\n type: this.constructor.type,\n attributes: this.attributes.inspect()\n };\n }, i.prototype.canBeGrouped = function () {\n return this.hasAttribute(\"href\");\n }, i.prototype.canBeGroupedWith = function (t) {\n return this.getAttribute(\"href\") === t.getAttribute(\"href\");\n }, i.prototype.getLength = function () {\n return this.length;\n }, i.prototype.canBeConsolidatedWith = function () {\n return !1;\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t15, e) {\n function i() {\n this.constructor = _t15;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t15[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t15.prototype = new i(), _t15.__super__ = e.prototype, _t15;\n },\n n = {}.hasOwnProperty;\n\n e.Piece.registerType(\"attachment\", e.AttachmentPiece = function (n) {\n function i(t) {\n this.attachment = t, i.__super__.constructor.apply(this, arguments), this.length = 1, this.ensureAttachmentExclusivelyHasAttribute(\"href\"), this.attachment.hasContent() || this.removeProhibitedAttributes();\n }\n\n return t(i, n), i.fromJSON = function (t) {\n return new this(e.Attachment.fromJSON(t.attachment), t.attributes);\n }, i.permittedAttributes = [\"caption\", \"presentation\"], i.prototype.ensureAttachmentExclusivelyHasAttribute = function (t) {\n return this.hasAttribute(t) ? (this.attachment.hasAttribute(t) || this.attachment.setAttributes(this.attributes.slice(t)), this.attributes = this.attributes.remove(t)) : void 0;\n }, i.prototype.removeProhibitedAttributes = function () {\n var t;\n return t = this.attributes.slice(this.constructor.permittedAttributes), t.isEqualTo(this.attributes) ? void 0 : this.attributes = t;\n }, i.prototype.getValue = function () {\n return this.attachment;\n }, i.prototype.isSerializable = function () {\n return !this.attachment.isPending();\n }, i.prototype.getCaption = function () {\n var t;\n return null != (t = this.attributes.get(\"caption\")) ? t : \"\";\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) && this.attachment.id === (null != t && null != (e = t.attachment) ? e.id : void 0);\n }, i.prototype.toString = function () {\n return e.OBJECT_REPLACEMENT_CHARACTER;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.attachment = this.attachment, t;\n }, i.prototype.getCacheKey = function () {\n return [i.__super__.getCacheKey.apply(this, arguments), this.attachment.getCacheKey()].join(\"/\");\n }, i.prototype.toConsole = function () {\n return JSON.stringify(this.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty;\n\n t = e.normalizeNewlines, e.Piece.registerType(\"string\", e.StringPiece = function (e) {\n function i(e) {\n i.__super__.constructor.apply(this, arguments), this.string = t(e), this.length = this.string.length;\n }\n\n return n(i, e), i.fromJSON = function (t) {\n return new this(t.string, t.attributes);\n }, i.prototype.getValue = function () {\n return this.string;\n }, i.prototype.toString = function () {\n return this.string.toString();\n }, i.prototype.isBlockBreak = function () {\n return \"\\n\" === this.toString() && this.getAttribute(\"blockBreak\") === !0;\n }, i.prototype.toJSON = function () {\n var t;\n return t = i.__super__.toJSON.apply(this, arguments), t.string = this.string, t;\n }, i.prototype.canBeConsolidatedWith = function (t) {\n return null != t && this.hasSameConstructorAs(t) && this.hasSameAttributesAsPiece(t);\n }, i.prototype.consolidateWith = function (t) {\n return new this.constructor(this.toString() + t.toString(), this.attributes);\n }, i.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.length ? (e = this, n = null) : (e = new this.constructor(this.string.slice(0, t), this.attributes), n = new this.constructor(this.string.slice(t), this.attributes)), [e, n];\n }, i.prototype.toConsole = function () {\n var t;\n return t = this.string, t.length > 15 && (t = t.slice(0, 14) + \"\\u2026\"), JSON.stringify(t.toString());\n }, i;\n }(e.Piece));\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var o in e) {\n i.call(e, o) && (t[o] = e[o]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n i = {}.hasOwnProperty,\n o = [].slice;\n\n t = e.spliceArray, e.SplittableList = function (e) {\n function i(t) {\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.objects = t.slice(0), this.length = this.objects.length;\n }\n\n var r, s, a;\n return n(i, e), i.box = function (t) {\n return t instanceof this ? t : new this(t);\n }, i.prototype.indexOf = function (t) {\n return this.objects.indexOf(t);\n }, i.prototype.splice = function () {\n var e;\n return e = 1 <= arguments.length ? o.call(arguments, 0) : [], new this.constructor(t.apply(null, [this.objects].concat(o.call(e))));\n }, i.prototype.eachObject = function (t) {\n var e, n, i, o, r, s;\n\n for (r = this.objects, s = [], n = e = 0, i = r.length; i > e; n = ++e) {\n o = r[n], s.push(t(o, n));\n }\n\n return s;\n }, i.prototype.insertObjectAtIndex = function (t, e) {\n return this.splice(e, 0, t);\n }, i.prototype.insertSplittableListAtIndex = function (t, e) {\n return this.splice.apply(this, [e, 0].concat(o.call(t.objects)));\n }, i.prototype.insertSplittableListAtPosition = function (t, e) {\n var n, i, o;\n return o = this.splitObjectAtPosition(e), i = o[0], n = o[1], new this.constructor(i).insertSplittableListAtIndex(t, n);\n }, i.prototype.editObjectAtIndex = function (t, e) {\n return this.replaceObjectAtIndex(e(this.objects[t]), t);\n }, i.prototype.replaceObjectAtIndex = function (t, e) {\n return this.splice(e, 1, t);\n }, i.prototype.removeObjectAtIndex = function (t) {\n return this.splice(t, 1);\n }, i.prototype.getObjectAtIndex = function (t) {\n return this.objects[t];\n }, i.prototype.getSplittableListInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n.slice(e, o + 1));\n }, i.prototype.selectSplittableList = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r;\n\n for (o = this.objects, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], t(e) && r.push(e);\n }\n\n return r;\n }.call(this), new this.constructor(n);\n }, i.prototype.removeObjectsInRange = function (t) {\n var e, n, i, o;\n return i = this.splitObjectsAtRange(t), n = i[0], e = i[1], o = i[2], new this.constructor(n).splice(e, o - e + 1);\n }, i.prototype.transformObjectsInRange = function (t, e) {\n var n, i, o, r, s, a, u;\n return s = this.splitObjectsAtRange(t), r = s[0], i = s[1], a = s[2], u = function () {\n var t, s, u;\n\n for (u = [], n = t = 0, s = r.length; s > t; n = ++t) {\n o = r[n], u.push(n >= i && a >= n ? e(o) : o);\n }\n\n return u;\n }(), new this.constructor(u);\n }, i.prototype.splitObjectsAtRange = function (t) {\n var e, n, i, o, s, u;\n return o = this.splitObjectAtPosition(a(t)), n = o[0], e = o[1], i = o[2], s = new this.constructor(n).splitObjectAtPosition(r(t) + i), n = s[0], u = s[1], [n, e, u - 1];\n }, i.prototype.getObjectAtPosition = function (t) {\n var e, n, i;\n return i = this.findIndexAndOffsetAtPosition(t), e = i.index, n = i.offset, this.objects[e];\n }, i.prototype.splitObjectAtPosition = function (t) {\n var e, n, i, o, r, s, a, u, c, l;\n return s = this.findIndexAndOffsetAtPosition(t), e = s.index, r = s.offset, o = this.objects.slice(0), null != e ? 0 === r ? (c = e, l = 0) : (i = this.getObjectAtIndex(e), a = i.splitAtOffset(r), n = a[0], u = a[1], o.splice(e, 1, n, u), c = e + 1, l = n.getLength() - r) : (c = o.length, l = 0), [o, c, l];\n }, i.prototype.consolidate = function () {\n var t, e, n, i, o, r;\n\n for (i = [], o = this.objects[0], r = this.objects.slice(1), t = 0, e = r.length; e > t; t++) {\n n = r[t], (\"function\" == typeof o.canBeConsolidatedWith ? o.canBeConsolidatedWith(n) : void 0) ? o = o.consolidateWith(n) : (i.push(o), o = n);\n }\n\n return null != o && i.push(o), new this.constructor(i);\n }, i.prototype.consolidateFromIndexToIndex = function (t, e) {\n var n, i, r;\n return i = this.objects.slice(0), r = i.slice(t, e + 1), n = new this.constructor(r).consolidate().toArray(), this.splice.apply(this, [t, r.length].concat(o.call(n)));\n }, i.prototype.findIndexAndOffsetAtPosition = function (t) {\n var e, n, i, o, r, s, a;\n\n for (e = 0, a = this.objects, i = n = 0, o = a.length; o > n; i = ++n) {\n if (s = a[i], r = e + s.getLength(), t >= e && r > t) return {\n index: i,\n offset: t - e\n };\n e = r;\n }\n\n return {\n index: null,\n offset: null\n };\n }, i.prototype.findPositionAtIndexAndOffset = function (t, e) {\n var n, i, o, r, s, a;\n\n for (s = 0, a = this.objects, n = i = 0, o = a.length; o > i; n = ++i) {\n if (r = a[n], t > n) s += r.getLength();else if (n === t) {\n s += e;\n break;\n }\n }\n\n return s;\n }, i.prototype.getEndPosition = function () {\n var t, e;\n return null != this.endPosition ? this.endPosition : this.endPosition = function () {\n var n, i, o;\n\n for (e = 0, o = this.objects, n = 0, i = o.length; i > n; n++) {\n t = o[n], e += t.getLength();\n }\n\n return e;\n }.call(this);\n }, i.prototype.toString = function () {\n return this.objects.join(\"\");\n }, i.prototype.toArray = function () {\n return this.objects.slice(0);\n }, i.prototype.toJSON = function () {\n return this.toArray();\n }, i.prototype.isEqualTo = function (t) {\n return i.__super__.isEqualTo.apply(this, arguments) || s(this.objects, null != t ? t.objects : void 0);\n }, s = function s(t, e) {\n var n, i, o, r, s;\n if (null == e && (e = []), t.length !== e.length) return !1;\n\n for (s = !0, i = n = 0, o = t.length; o > n; i = ++n) {\n r = t[i], s && !r.isEqualTo(e[i]) && (s = !1);\n }\n\n return s;\n }, i.prototype.contentsForInspection = function () {\n var t;\n return {\n objects: \"[\" + function () {\n var e, n, i, o;\n\n for (i = this.objects, o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.inspect());\n }\n\n return o;\n }.call(this).join(\", \") + \"]\"\n };\n }, a = function a(t) {\n return t[0];\n }, r = function r(t) {\n return t[1];\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t = function t(_t16, e) {\n function i() {\n this.constructor = _t16;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t16[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t16.prototype = new i(), _t16.__super__ = e.prototype, _t16;\n },\n n = {}.hasOwnProperty;\n\n e.Text = function (n) {\n function i(t) {\n var n;\n null == t && (t = []), i.__super__.constructor.apply(this, arguments), this.pieceList = new e.SplittableList(function () {\n var e, i, o;\n\n for (o = [], e = 0, i = t.length; i > e; e++) {\n n = t[e], n.isEmpty() || o.push(n);\n }\n\n return o;\n }());\n }\n\n return t(i, n), i.textForAttachmentWithAttributes = function (t, n) {\n var i;\n return i = new e.AttachmentPiece(t, n), new this([i]);\n }, i.textForStringWithAttributes = function (t, n) {\n var i;\n return i = new e.StringPiece(t, n), new this([i]);\n }, i.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Piece.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, i.prototype.copy = function () {\n return this.copyWithPieceList(this.pieceList);\n }, i.prototype.copyWithPieceList = function (t) {\n return new this.constructor(t.consolidate().toArray());\n }, i.prototype.copyUsingObjectMap = function (t) {\n var e, n;\n return n = function () {\n var n, i, o, r, s;\n\n for (o = this.getPieces(), s = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], s.push(null != (r = t.find(e)) ? r : e);\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, i.prototype.appendText = function (t) {\n return this.insertTextAtPosition(t, this.getLength());\n }, i.prototype.insertTextAtPosition = function (t, e) {\n return this.copyWithPieceList(this.pieceList.insertSplittableListAtPosition(t.pieceList, e));\n }, i.prototype.removeTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.removeObjectsInRange(t));\n }, i.prototype.replaceTextAtRange = function (t, e) {\n return this.removeTextAtRange(e).insertTextAtPosition(t, e[0]);\n }, i.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, i;\n if (!(t[0] <= e && e <= t[1])) return i = this.getTextAtRange(t), n = i.getLength(), t[0] < e && (e -= n), this.removeTextAtRange(t).insertTextAtPosition(i, e);\n }, i.prototype.addAttributeAtRange = function (t, e, n) {\n var i;\n return i = {}, i[t] = e, this.addAttributesAtRange(i, n);\n }, i.prototype.addAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAdditionalAttributes(t);\n }));\n }, i.prototype.removeAttributeAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithoutAttribute(t);\n }));\n }, i.prototype.setAttributesAtRange = function (t, e) {\n return this.copyWithPieceList(this.pieceList.transformObjectsInRange(e, function (e) {\n return e.copyWithAttributes(t);\n }));\n }, i.prototype.getAttributesAtPosition = function (t) {\n var e, n;\n return null != (e = null != (n = this.pieceList.getObjectAtPosition(t)) ? n.getAttributes() : void 0) ? e : {};\n }, i.prototype.getCommonAttributes = function () {\n var t, n;\n return t = function () {\n var t, e, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.getAttributes());\n }\n\n return o;\n }.call(this), e.Hash.fromCommonAttributesOfObjects(t).toObject();\n }, i.prototype.getCommonAttributesAtRange = function (t) {\n var e;\n return null != (e = this.getTextAtRange(t).getCommonAttributes()) ? e : {};\n }, i.prototype.getExpandedRangeForAttributeAtOffset = function (t, e) {\n var n, i, o;\n\n for (n = o = e, i = this.getLength(); n > 0 && this.getCommonAttributesAtRange([n - 1, o])[t];) {\n n--;\n }\n\n for (; i > o && this.getCommonAttributesAtRange([e, o + 1])[t];) {\n o++;\n }\n\n return [n, o];\n }, i.prototype.getTextAtRange = function (t) {\n return this.copyWithPieceList(this.pieceList.getSplittableListInRange(t));\n }, i.prototype.getStringAtRange = function (t) {\n return this.pieceList.getSplittableListInRange(t).toString();\n }, i.prototype.getStringAtPosition = function (t) {\n return this.getStringAtRange([t, t + 1]);\n }, i.prototype.startsWithString = function (t) {\n return this.getStringAtRange([0, t.length]) === t;\n }, i.prototype.endsWithString = function (t) {\n var e;\n return e = this.getLength(), this.getStringAtRange([e - t.length, e]) === t;\n }, i.prototype.getAttachmentPieces = function () {\n var t, e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], null != n.attachment && o.push(n);\n }\n\n return o;\n }, i.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, i.prototype.getAttachmentAndPositionById = function (t) {\n var e, n, i, o, r, s;\n\n for (o = 0, r = this.pieceList.toArray(), e = 0, n = r.length; n > e; e++) {\n if (i = r[e], (null != (s = i.attachment) ? s.id : void 0) === t) return {\n attachment: i.attachment,\n position: o\n };\n o += i.length;\n }\n\n return {\n attachment: null,\n position: null\n };\n }, i.prototype.getAttachmentById = function (t) {\n var e, n, i;\n return i = this.getAttachmentAndPositionById(t), e = i.attachment, n = i.position, e;\n }, i.prototype.getRangeOfAttachment = function (t) {\n var e, n;\n return n = this.getAttachmentAndPositionById(t.id), t = n.attachment, e = n.position, null != t ? [e, e + 1] : void 0;\n }, i.prototype.updateAttributesForAttachment = function (t, e) {\n var n;\n return (n = this.getRangeOfAttachment(e)) ? this.addAttributesAtRange(t, n) : this;\n }, i.prototype.getLength = function () {\n return this.pieceList.getEndPosition();\n }, i.prototype.isEmpty = function () {\n return 0 === this.getLength();\n }, i.prototype.isEqualTo = function (t) {\n var e;\n return i.__super__.isEqualTo.apply(this, arguments) || (null != t && null != (e = t.pieceList) ? e.isEqualTo(this.pieceList) : void 0);\n }, i.prototype.isBlockBreak = function () {\n return 1 === this.getLength() && this.pieceList.getObjectAtIndex(0).isBlockBreak();\n }, i.prototype.eachPiece = function (t) {\n return this.pieceList.eachObject(t);\n }, i.prototype.getPieces = function () {\n return this.pieceList.toArray();\n }, i.prototype.getPieceAtPosition = function (t) {\n return this.pieceList.getObjectAtPosition(t);\n }, i.prototype.contentsForInspection = function () {\n return {\n pieceList: this.pieceList.inspect()\n };\n }, i.prototype.toSerializableText = function () {\n var t;\n return t = this.pieceList.selectSplittableList(function (t) {\n return t.isSerializable();\n }), this.copyWithPieceList(t);\n }, i.prototype.toString = function () {\n return this.pieceList.toString();\n }, i.prototype.toJSON = function () {\n return this.pieceList.toJSON();\n }, i.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.pieceList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.toConsole()));\n }\n\n return o;\n }.call(this));\n }, i;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s = function s(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n a.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n a = {}.hasOwnProperty,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n c = [].slice;\n\n t = e.arraysAreEqual, r = e.spliceArray, i = e.getBlockConfig, n = e.getBlockAttributeNames, o = e.getListAttributeNames, e.Block = function (n) {\n function a(t, n) {\n null == t && (t = new e.Text()), null == n && (n = []), a.__super__.constructor.apply(this, arguments), this.text = h(t), this.attributes = n;\n }\n\n var l, h, p, d, f, g, m, v, y;\n return s(a, n), a.fromJSON = function (t) {\n var n;\n return n = e.Text.fromJSON(t.text), new this(n, t.attributes);\n }, a.prototype.isEmpty = function () {\n return this.text.isBlockBreak();\n }, a.prototype.isEqualTo = function (e) {\n return a.__super__.isEqualTo.apply(this, arguments) || this.text.isEqualTo(null != e ? e.text : void 0) && t(this.attributes, null != e ? e.attributes : void 0);\n }, a.prototype.copyWithText = function (t) {\n return new this.constructor(t, this.attributes);\n }, a.prototype.copyWithoutText = function () {\n return this.copyWithText(null);\n }, a.prototype.copyWithAttributes = function (t) {\n return new this.constructor(this.text, t);\n }, a.prototype.copyWithoutAttributes = function () {\n return this.copyWithAttributes(null);\n }, a.prototype.copyUsingObjectMap = function (t) {\n var e;\n return this.copyWithText((e = t.find(this.text)) ? e : this.text.copyUsingObjectMap(t));\n }, a.prototype.addAttribute = function (t) {\n var e;\n return e = this.attributes.concat(d(t)), this.copyWithAttributes(e);\n }, a.prototype.removeAttribute = function (t) {\n var e, n;\n return n = i(t).listAttribute, e = g(g(this.attributes, t), n), this.copyWithAttributes(e);\n }, a.prototype.removeLastAttribute = function () {\n return this.removeAttribute(this.getLastAttribute());\n }, a.prototype.getLastAttribute = function () {\n return f(this.attributes);\n }, a.prototype.getAttributes = function () {\n return this.attributes.slice(0);\n }, a.prototype.getAttributeLevel = function () {\n return this.attributes.length;\n }, a.prototype.getAttributeAtLevel = function (t) {\n return this.attributes[t - 1];\n }, a.prototype.hasAttribute = function (t) {\n return u.call(this.attributes, t) >= 0;\n }, a.prototype.hasAttributes = function () {\n return this.getAttributeLevel() > 0;\n }, a.prototype.getLastNestableAttribute = function () {\n return f(this.getNestableAttributes());\n }, a.prototype.getNestableAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).nestable && r.push(t);\n }\n\n return r;\n }, a.prototype.getNestingLevel = function () {\n return this.getNestableAttributes().length;\n }, a.prototype.decreaseNestingLevel = function () {\n var t;\n return (t = this.getLastNestableAttribute()) ? this.removeAttribute(t) : this;\n }, a.prototype.increaseNestingLevel = function () {\n var t, e, n;\n return (t = this.getLastNestableAttribute()) ? (n = this.attributes.lastIndexOf(t), e = r.apply(null, [this.attributes, n + 1, 0].concat(c.call(d(t)))), this.copyWithAttributes(e)) : this;\n }, a.prototype.getListItemAttributes = function () {\n var t, e, n, o, r;\n\n for (o = this.attributes, r = [], e = 0, n = o.length; n > e; e++) {\n t = o[e], i(t).listAttribute && r.push(t);\n }\n\n return r;\n }, a.prototype.isListItem = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.listAttribute : void 0;\n }, a.prototype.isTerminalBlock = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.terminal : void 0;\n }, a.prototype.breaksOnReturn = function () {\n var t;\n return null != (t = i(this.getLastAttribute())) ? t.breakOnReturn : void 0;\n }, a.prototype.findLineBreakInDirectionFromPosition = function (t, e) {\n var n, i;\n return i = this.toString(), n = function () {\n switch (t) {\n case \"forward\":\n return i.indexOf(\"\\n\", e);\n\n case \"backward\":\n return i.slice(0, e).lastIndexOf(\"\\n\");\n }\n }(), -1 !== n ? n : void 0;\n }, a.prototype.contentsForInspection = function () {\n return {\n text: this.text.inspect(),\n attributes: this.attributes\n };\n }, a.prototype.toString = function () {\n return this.text.toString();\n }, a.prototype.toJSON = function () {\n return {\n text: this.text,\n attributes: this.attributes\n };\n }, a.prototype.getLength = function () {\n return this.text.getLength();\n }, a.prototype.canBeConsolidatedWith = function (t) {\n return !this.hasAttributes() && !t.hasAttributes();\n }, a.prototype.consolidateWith = function (t) {\n var n, i;\n return n = e.Text.textForStringWithAttributes(\"\\n\"), i = this.getTextWithoutBlockBreak().appendText(n), this.copyWithText(i.appendText(t.text));\n }, a.prototype.splitAtOffset = function (t) {\n var e, n;\n return 0 === t ? (e = null, n = this) : t === this.getLength() ? (e = this, n = null) : (e = this.copyWithText(this.text.getTextAtRange([0, t])), n = this.copyWithText(this.text.getTextAtRange([t, this.getLength()]))), [e, n];\n }, a.prototype.getBlockBreakPosition = function () {\n return this.text.getLength() - 1;\n }, a.prototype.getTextWithoutBlockBreak = function () {\n return m(this.text) ? this.text.getTextAtRange([0, this.getBlockBreakPosition()]) : this.text.copy();\n }, a.prototype.canBeGrouped = function (t) {\n return this.attributes[t];\n }, a.prototype.canBeGroupedWith = function (t, e) {\n var n, r, s, a;\n return s = t.getAttributes(), r = s[e], n = this.attributes[e], n === r && !(i(n).group === !1 && (a = s[e + 1], u.call(o(), a) < 0));\n }, h = function h(t) {\n return t = y(t), t = l(t);\n }, y = function y(t) {\n var n, i, o, r, s, a;\n return r = !1, a = t.getPieces(), i = 2 <= a.length ? c.call(a, 0, n = a.length - 1) : (n = 0, []), o = a[n++], null == o ? t : (i = function () {\n var t, e, n;\n\n for (n = [], t = 0, e = i.length; e > t; t++) {\n s = i[t], s.isBlockBreak() ? (r = !0, n.push(v(s))) : n.push(s);\n }\n\n return n;\n }(), r ? new e.Text(c.call(i).concat([o])) : t);\n }, p = e.Text.textForStringWithAttributes(\"\\n\", {\n blockBreak: !0\n }), l = function l(t) {\n return m(t) ? t : t.appendText(p);\n }, m = function m(t) {\n var e, n;\n return n = t.getLength(), 0 === n ? !1 : (e = t.getTextAtRange([n - 1, n]), e.isBlockBreak());\n }, v = function v(t) {\n return t.copyWithoutAttribute(\"blockBreak\");\n }, d = function d(t) {\n var e;\n return e = i(t).listAttribute, null != e ? [e, t] : [t];\n }, f = function f(t) {\n return t.slice(-1)[0];\n }, g = function g(t, e) {\n var n;\n return n = t.lastIndexOf(e), -1 === n ? t : r(t, n, 1);\n }, a;\n }(e.Object);\n }.call(this), function () {\n var t,\n n,\n i,\n o = function o(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n r.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n r = {}.hasOwnProperty,\n s = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n },\n a = [].slice;\n\n n = e.tagName, i = e.walkTree, t = e.nodeIsAttachmentElement, e.HTMLSanitizer = function (r) {\n function u(t, e) {\n var n;\n n = null != e ? e : {}, this.allowedAttributes = n.allowedAttributes, this.forbiddenProtocols = n.forbiddenProtocols, null == this.allowedAttributes && (this.allowedAttributes = c), null == this.forbiddenProtocols && (this.forbiddenProtocols = l), this.body = h(t);\n }\n\n var c, l, h, p;\n return o(u, r), c = \"style href src width height class\".split(\" \"), l = \"javascript:\".split(\" \"), u.sanitize = function (t, e) {\n var n;\n return n = new this(t, e), n.sanitize(), n;\n }, u.prototype.sanitize = function () {\n return this.sanitizeElements(), this.normalizeListElementNesting();\n }, u.prototype.getHTML = function () {\n return this.body.innerHTML;\n }, u.prototype.getBody = function () {\n return this.body;\n }, u.prototype.sanitizeElements = function () {\n var t, n, o, r, s;\n\n for (s = i(this.body), r = []; s.nextNode();) {\n switch (o = s.currentNode, o.nodeType) {\n case Node.ELEMENT_NODE:\n p(o) ? r.push(o) : this.sanitizeElement(o);\n break;\n\n case Node.COMMENT_NODE:\n r.push(o);\n }\n }\n\n for (t = 0, n = r.length; n > t; t++) {\n o = r[t], e.removeNode(o);\n }\n\n return this.body;\n }, u.prototype.sanitizeElement = function (t) {\n var e, n, i, o, r;\n\n for (t.hasAttribute(\"href\") && (o = t.protocol, s.call(this.forbiddenProtocols, o) >= 0 && t.removeAttribute(\"href\")), r = a.call(t.attributes), e = 0, n = r.length; n > e; e++) {\n i = r[e].name, s.call(this.allowedAttributes, i) >= 0 || 0 === i.indexOf(\"data-trix\") || t.removeAttribute(i);\n }\n\n return t;\n }, u.prototype.normalizeListElementNesting = function () {\n var t, e, i, o, r;\n\n for (r = a.call(this.body.querySelectorAll(\"ul,ol\")), t = 0, e = r.length; e > t; t++) {\n i = r[t], (o = i.previousElementSibling) && \"li\" === n(o) && o.appendChild(i);\n }\n\n return this.body;\n }, p = function p(e) {\n return (null != e ? e.nodeType : void 0) !== Node.ELEMENT_NODE || t(e) ? void 0 : \"script\" === n(e) || \"false\" === e.getAttribute(\"data-trix-serialize\");\n }, h = function h(t) {\n var e, n, i, o, r;\n\n for (null == t && (t = \"\"), t = t.replace(/<\\/html[^>]*>[^]*$/i, \"\"), e = document.implementation.createHTMLDocument(\"\"), e.documentElement.innerHTML = t, r = e.head.querySelectorAll(\"style\"), i = 0, o = r.length; o > i; i++) {\n n = r[i], e.body.appendChild(n);\n }\n\n return e.body;\n }, u;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h,\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty,\n f = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, s = e.makeElement, l = e.tagName, r = e.getBlockTagNames, h = e.walkTree, o = e.findClosestElementFromNode, i = e.elementContainsNode, a = e.nodeIsAttachmentElement, u = e.normalizeSpaces, n = e.breakableWhitespacePattern, c = e.squishBreakableWhitespace, e.HTMLParser = function (d) {\n function g(t, e) {\n this.html = t, this.referenceElement = (null != e ? e : {}).referenceElement, this.blocks = [], this.blockElements = [], this.processedElements = [];\n }\n\n var m, v, y, b, A, C, x, w, E, S, R, k;\n return p(g, d), g.parse = function (t, e) {\n var n;\n return n = new this(t, e), n.parse(), n;\n }, g.prototype.getDocument = function () {\n return e.Document.fromJSON(this.blocks);\n }, g.prototype.parse = function () {\n var t, n;\n\n try {\n for (this.createHiddenContainer(), t = e.HTMLSanitizer.sanitize(this.html).getHTML(), this.containerElement.innerHTML = t, n = h(this.containerElement, {\n usingFilter: w\n }); n.nextNode();) {\n this.processNode(n.currentNode);\n }\n\n return this.translateBlockElementMarginsToNewlines();\n } finally {\n this.removeHiddenContainer();\n }\n }, g.prototype.createHiddenContainer = function () {\n return this.referenceElement ? (this.containerElement = this.referenceElement.cloneNode(!1), this.containerElement.removeAttribute(\"id\"), this.containerElement.setAttribute(\"data-trix-internal\", \"\"), this.containerElement.style.display = \"none\", this.referenceElement.parentNode.insertBefore(this.containerElement, this.referenceElement.nextSibling)) : (this.containerElement = s({\n tagName: \"div\",\n style: {\n display: \"none\"\n }\n }), document.body.appendChild(this.containerElement));\n }, g.prototype.removeHiddenContainer = function () {\n return e.removeNode(this.containerElement);\n }, w = function w(t) {\n return \"style\" === l(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, g.prototype.processNode = function (t) {\n switch (t.nodeType) {\n case Node.TEXT_NODE:\n if (!this.isInsignificantTextNode(t)) return this.appendBlockForTextNode(t), this.processTextNode(t);\n break;\n\n case Node.ELEMENT_NODE:\n return this.appendBlockForElement(t), this.processElement(t);\n }\n }, g.prototype.appendBlockForTextNode = function (e) {\n var n, i, o;\n return i = e.parentNode, i === this.currentBlockElement || i !== this.containerElement && !this.isBlockElement(i) ? void 0 : (n = this.getBlockAttributes(i), t(n, null != (o = this.currentBlock) ? o.attributes : void 0) ? void 0 : (this.currentBlock = this.appendBlockForAttributesWithElement(n, i), this.currentBlockElement = i));\n }, g.prototype.appendBlockForElement = function (e) {\n var n, o, r, s;\n\n if (r = this.isBlockElement(e), o = i(this.currentBlockElement, e), r && !this.isBlockElement(e.firstChild)) {\n if (!(this.isInsignificantTextNode(e.firstChild) && this.isBlockElement(e.firstElementChild) || (n = this.getBlockAttributes(e), o && t(n, this.currentBlock.attributes)))) return this.currentBlock = this.appendBlockForAttributesWithElement(n, e), this.currentBlockElement = e;\n } else if (this.currentBlockElement && !o && !r) return (s = this.findParentBlockElement(e)) ? this.appendBlockForElement(s) : (this.currentBlock = this.appendEmptyBlock(), this.currentBlockElement = null);\n }, g.prototype.findParentBlockElement = function (t) {\n var e;\n\n for (e = t.parentElement; e && e !== this.containerElement;) {\n if (this.isBlockElement(e) && f.call(this.blockElements, e) >= 0) return e;\n e = e.parentElement;\n }\n\n return null;\n }, g.prototype.processTextNode = function (t) {\n var e, n;\n return n = t.data, v(t.parentNode) || (n = c(n), R(null != (e = t.previousSibling) ? e.textContent : void 0) && (n = C(n))), this.appendStringWithAttributes(n, this.getTextAttributes(t.parentNode));\n }, g.prototype.processElement = function (t) {\n var e, n, i, o, r;\n if (a(t)) return e = y(t), Object.keys(e).length && (o = this.getTextAttributes(t), this.appendAttachmentWithAttributes(e, o), t.innerHTML = \"\"), this.processedElements.push(t);\n\n switch (l(t)) {\n case \"br\":\n return this.isExtraBR(t) || this.isBlockElement(t.nextSibling) || this.appendStringWithAttributes(\"\\n\", this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"img\":\n e = {\n url: t.getAttribute(\"src\"),\n contentType: \"image\"\n }, i = A(t);\n\n for (n in i) {\n r = i[n], e[n] = r;\n }\n\n return this.appendAttachmentWithAttributes(e, this.getTextAttributes(t)), this.processedElements.push(t);\n\n case \"tr\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\"\\n\");\n break;\n\n case \"td\":\n if (t.parentNode.firstChild !== t) return this.appendStringWithAttributes(\" | \");\n }\n }, g.prototype.appendBlockForAttributesWithElement = function (t, e) {\n var n;\n return this.blockElements.push(e), n = m(t), this.blocks.push(n), n;\n }, g.prototype.appendEmptyBlock = function () {\n return this.appendBlockForAttributesWithElement([], null);\n }, g.prototype.appendStringWithAttributes = function (t, e) {\n return this.appendPiece(S(t, e));\n }, g.prototype.appendAttachmentWithAttributes = function (t, e) {\n return this.appendPiece(E(t, e));\n }, g.prototype.appendPiece = function (t) {\n return 0 === this.blocks.length && this.appendEmptyBlock(), this.blocks[this.blocks.length - 1].text.push(t);\n }, g.prototype.appendStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[i.length - 1], \"string\" === (null != n ? n.type : void 0) ? n.string += t : i.push(S(t));\n }, g.prototype.prependStringToTextAtIndex = function (t, e) {\n var n, i;\n return i = this.blocks[e].text, n = i[0], \"string\" === (null != n ? n.type : void 0) ? n.string = t + n.string : i.unshift(S(t));\n }, S = function S(t, e) {\n var n;\n return null == e && (e = {}), n = \"string\", t = u(t), {\n string: t,\n attributes: e,\n type: n\n };\n }, E = function E(t, e) {\n var n;\n return null == e && (e = {}), n = \"attachment\", {\n attachment: t,\n attributes: e,\n type: n\n };\n }, m = function m(t) {\n var e;\n return null == t && (t = {}), e = [], {\n text: e,\n attributes: t\n };\n }, g.prototype.getTextAttributes = function (t) {\n var n, i, r, s, u, c, l, h, p, d, f, g, m;\n r = {}, d = e.config.textAttributes;\n\n for (n in d) {\n if (u = d[n], u.tagName && o(t, {\n matchingSelector: u.tagName,\n untilNode: this.containerElement\n })) r[n] = !0;else if (u.parser) {\n if (m = u.parser(t)) {\n for (i = !1, f = this.findBlockElementAncestors(t), c = 0, p = f.length; p > c; c++) {\n if (s = f[c], u.parser(s) === m) {\n i = !0;\n break;\n }\n }\n\n i || (r[n] = m);\n }\n } else u.styleProperty && (m = t.style[u.styleProperty]) && (r[n] = m);\n }\n\n if (a(t) && (l = t.getAttribute(\"data-trix-attributes\"))) {\n g = JSON.parse(l);\n\n for (h in g) {\n m = g[h], r[h] = m;\n }\n }\n\n return r;\n }, g.prototype.getBlockAttributes = function (t) {\n var n, i, o, r;\n\n for (i = []; t && t !== this.containerElement;) {\n r = e.config.blockAttributes;\n\n for (n in r) {\n o = r[n], o.parse !== !1 && l(t) === o.tagName && ((\"function\" == typeof o.test ? o.test(t) : void 0) || !o.test) && (i.push(n), o.listAttribute && i.push(o.listAttribute));\n }\n\n t = t.parentNode;\n }\n\n return i.reverse();\n }, g.prototype.findBlockElementAncestors = function (t) {\n var e, n;\n\n for (e = []; t && t !== this.containerElement;) {\n n = l(t), f.call(r(), n) >= 0 && e.push(t), t = t.parentNode;\n }\n\n return e;\n }, y = function y(t) {\n return JSON.parse(t.getAttribute(\"data-trix-attachment\"));\n }, A = function A(t) {\n var e, n, i;\n return i = t.getAttribute(\"width\"), n = t.getAttribute(\"height\"), e = {}, i && (e.width = parseInt(i, 10)), n && (e.height = parseInt(n, 10)), e;\n }, g.prototype.isBlockElement = function (t) {\n var e;\n if ((null != t ? t.nodeType : void 0) === Node.ELEMENT_NODE && !a(t) && !o(t, {\n matchingSelector: \"td\",\n untilNode: this.containerElement\n })) return e = l(t), f.call(r(), e) >= 0 || \"block\" === window.getComputedStyle(t).display;\n }, g.prototype.isInsignificantTextNode = function (t) {\n var e, n, i;\n if ((null != t ? t.nodeType : void 0) === Node.TEXT_NODE && k(t.data) && (n = t.parentNode, i = t.previousSibling, e = t.nextSibling, (!x(n.previousSibling) || this.isBlockElement(n.previousSibling)) && !v(n))) return !i || this.isBlockElement(i) || !e || this.isBlockElement(e);\n }, g.prototype.isExtraBR = function (t) {\n return \"br\" === l(t) && this.isBlockElement(t.parentNode) && t.parentNode.lastChild === t;\n }, v = function v(t) {\n var e;\n return e = window.getComputedStyle(t).whiteSpace, \"pre\" === e || \"pre-wrap\" === e || \"pre-line\" === e;\n }, x = function x(t) {\n return t && !R(t.textContent);\n }, g.prototype.translateBlockElementMarginsToNewlines = function () {\n var t, e, n, i, o, r, s, a;\n\n for (e = this.getMarginOfDefaultBlockElement(), s = this.blocks, a = [], i = n = 0, o = s.length; o > n; i = ++n) {\n t = s[i], (r = this.getMarginOfBlockElementAtIndex(i)) && (r.top > 2 * e.top && this.prependStringToTextAtIndex(\"\\n\", i), a.push(r.bottom > 2 * e.bottom ? this.appendStringToTextAtIndex(\"\\n\", i) : void 0));\n }\n\n return a;\n }, g.prototype.getMarginOfBlockElementAtIndex = function (t) {\n var e, n;\n return !(e = this.blockElements[t]) || !e.textContent || (n = l(e), f.call(r(), n) >= 0 || f.call(this.processedElements, e) >= 0) ? void 0 : b(e);\n }, g.prototype.getMarginOfDefaultBlockElement = function () {\n var t;\n return t = s(e.config.blockAttributes[\"default\"].tagName), this.containerElement.appendChild(t), b(t);\n }, b = function b(t) {\n var e;\n return e = window.getComputedStyle(t), \"block\" === e.display ? {\n top: parseInt(e.marginTop),\n bottom: parseInt(e.marginBottom)\n } : void 0;\n }, C = function C(t) {\n return t.replace(RegExp(\"^\" + n.source + \"+\"), \"\");\n }, k = function k(t) {\n return RegExp(\"^\" + n.source + \"*$\").test(t);\n }, R = function R(t) {\n return /\\s$/.test(t);\n }, g;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice,\n u = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.arraysAreEqual, i = e.normalizeRange, o = e.rangeIsCollapsed, n = e.getBlockConfig, e.Document = function (s) {\n function c(t) {\n null == t && (t = []), c.__super__.constructor.apply(this, arguments), 0 === t.length && (t = [new e.Block()]), this.blockList = e.SplittableList.box(t);\n }\n\n var l;\n return r(c, s), c.fromJSON = function (t) {\n var n, i;\n return i = function () {\n var i, o, r;\n\n for (r = [], i = 0, o = t.length; o > i; i++) {\n n = t[i], r.push(e.Block.fromJSON(n));\n }\n\n return r;\n }(), new this(i);\n }, c.fromHTML = function (t, n) {\n return e.HTMLParser.parse(t, n).getDocument();\n }, c.fromString = function (t, n) {\n var i;\n return i = e.Text.textForStringWithAttributes(t, n), new this([new e.Block(i)]);\n }, c.prototype.isEmpty = function () {\n var t;\n return 1 === this.blockList.length && (t = this.getBlockAtIndex(0), t.isEmpty() && !t.hasAttributes());\n }, c.prototype.copy = function (t) {\n var e;\n return null == t && (t = {}), e = t.consolidateBlocks ? this.blockList.consolidate().toArray() : this.blockList.toArray(), new this.constructor(e);\n }, c.prototype.copyUsingObjectsFromDocument = function (t) {\n var n;\n return n = new e.ObjectMap(t.getObjects()), this.copyUsingObjectMap(n);\n }, c.prototype.copyUsingObjectMap = function (t) {\n var e, n, i;\n return n = function () {\n var n, o, r, s;\n\n for (r = this.getBlocks(), s = [], n = 0, o = r.length; o > n; n++) {\n e = r[n], s.push((i = t.find(e)) ? i : e.copyUsingObjectMap(t));\n }\n\n return s;\n }.call(this), new this.constructor(n);\n }, c.prototype.copyWithBaseBlockAttributes = function (t) {\n var e, n, i;\n return null == t && (t = []), i = function () {\n var i, o, r, s;\n\n for (r = this.getBlocks(), s = [], i = 0, o = r.length; o > i; i++) {\n n = r[i], e = t.concat(n.getAttributes()), s.push(n.copyWithAttributes(e));\n }\n\n return s;\n }.call(this), new this.constructor(i);\n }, c.prototype.replaceBlock = function (t, e) {\n var n;\n return n = this.blockList.indexOf(t), -1 === n ? this : new this.constructor(this.blockList.replaceObjectAtIndex(e, n));\n }, c.prototype.insertDocumentAtRange = function (t, e) {\n var n, r, s, a, u, c, l;\n return r = t.blockList, u = (e = i(e))[0], c = this.locationFromPosition(u), s = c.index, a = c.offset, l = this, n = this.getBlockAtPosition(u), o(e) && n.isEmpty() && !n.hasAttributes() ? l = new this.constructor(l.blockList.removeObjectAtIndex(s)) : n.getBlockBreakPosition() === a && u++, l = l.removeTextAtRange(e), new this.constructor(l.blockList.insertSplittableListAtPosition(r, u));\n }, c.prototype.mergeDocumentAtRange = function (e, n) {\n var o, r, s, a, u, c, l, h, p, d, f, g;\n return f = (n = i(n))[0], d = this.locationFromPosition(f), r = this.getBlockAtIndex(d.index).getAttributes(), o = e.getBaseBlockAttributes(), g = r.slice(-o.length), t(o, g) ? (l = r.slice(0, -o.length), c = e.copyWithBaseBlockAttributes(l)) : c = e.copy({\n consolidateBlocks: !0\n }).copyWithBaseBlockAttributes(r), s = c.getBlockCount(), a = c.getBlockAtIndex(0), t(r, a.getAttributes()) ? (u = a.getTextWithoutBlockBreak(), p = this.insertTextAtRange(u, n), s > 1 && (c = new this.constructor(c.getBlocks().slice(1)), h = f + u.getLength(), p = p.insertDocumentAtRange(c, h))) : p = this.insertDocumentAtRange(c, n), p;\n }, c.prototype.insertTextAtRange = function (t, e) {\n var n, o, r, s, a;\n return a = (e = i(e))[0], s = this.locationFromPosition(a), o = s.index, r = s.offset, n = this.removeTextAtRange(e), new this.constructor(n.blockList.editObjectAtIndex(o, function (e) {\n return e.copyWithText(e.text.insertTextAtPosition(t, r));\n }));\n }, c.prototype.removeTextAtRange = function (t) {\n var e, n, r, s, a, u, c, l, h, p, d, f, g, m, v, y, b, A, C, x, w;\n return p = t = i(t), l = p[0], A = p[1], o(t) ? this : (d = this.locationRangeFromRange(t), u = d[0], y = d[1], a = u.index, c = u.offset, s = this.getBlockAtIndex(a), v = y.index, b = y.offset, m = this.getBlockAtIndex(v), f = A - l === 1 && s.getBlockBreakPosition() === c && m.getBlockBreakPosition() !== b && \"\\n\" === m.text.getStringAtPosition(b), f ? r = this.blockList.editObjectAtIndex(v, function (t) {\n return t.copyWithText(t.text.removeTextAtRange([b, b + 1]));\n }) : (h = s.text.getTextAtRange([0, c]), C = m.text.getTextAtRange([b, m.getLength()]), x = h.appendText(C), g = a !== v && 0 === c, w = g && s.getAttributeLevel() >= m.getAttributeLevel(), n = w ? m.copyWithText(x) : s.copyWithText(x), e = v + 1 - a, r = this.blockList.splice(a, e, n)), new this.constructor(r));\n }, c.prototype.moveTextFromRangeToPosition = function (t, e) {\n var n, o, r, s, u, c, l, h, p, d;\n return c = t = i(t), p = c[0], r = c[1], e >= p && r >= e ? this : (o = this.getDocumentAtRange(t), h = this.removeTextAtRange(t), u = e > p, u && (e -= o.getLength()), l = o.getBlocks(), s = l[0], n = 2 <= l.length ? a.call(l, 1) : [], 0 === n.length ? (d = s.getTextWithoutBlockBreak(), u && (e += 1)) : d = s.text, h = h.insertTextAtRange(d, e), 0 === n.length ? h : (o = new this.constructor(n), e += d.getLength(), h.insertDocumentAtRange(o, e)));\n }, c.prototype.addAttributeAtRange = function (t, e, i) {\n var o;\n return o = this.blockList, this.eachBlockAtRange(i, function (i, r, s) {\n return o = o.editObjectAtIndex(s, function () {\n return n(t) ? i.addAttribute(t, e) : r[0] === r[1] ? i : i.copyWithText(i.text.addAttributeAtRange(t, e, r));\n });\n }), new this.constructor(o);\n }, c.prototype.addAttribute = function (t, e) {\n var n;\n return n = this.blockList, this.eachBlock(function (i, o) {\n return n = n.editObjectAtIndex(o, function () {\n return i.addAttribute(t, e);\n });\n }), new this.constructor(n);\n }, c.prototype.removeAttributeAtRange = function (t, e) {\n var i;\n return i = this.blockList, this.eachBlockAtRange(e, function (e, o, r) {\n return n(t) ? i = i.editObjectAtIndex(r, function () {\n return e.removeAttribute(t);\n }) : o[0] !== o[1] ? i = i.editObjectAtIndex(r, function () {\n return e.copyWithText(e.text.removeAttributeAtRange(t, o));\n }) : void 0;\n }), new this.constructor(i);\n }, c.prototype.updateAttributesForAttachment = function (t, e) {\n var n, i, o, r;\n return o = (i = this.getRangeOfAttachment(e))[0], n = this.locationFromPosition(o).index, r = this.getTextAtIndex(n), new this.constructor(this.blockList.editObjectAtIndex(n, function (n) {\n return n.copyWithText(r.updateAttributesForAttachment(t, e));\n }));\n }, c.prototype.removeAttributeForAttachment = function (t, e) {\n var n;\n return n = this.getRangeOfAttachment(e), this.removeAttributeAtRange(t, n);\n }, c.prototype.insertBlockBreakAtRange = function (t) {\n var n, o, r, s;\n return s = (t = i(t))[0], r = this.locationFromPosition(s).offset, o = this.removeTextAtRange(t), 0 === r && (n = [new e.Block()]), new this.constructor(o.blockList.insertSplittableListAtPosition(new e.SplittableList(n), s));\n }, c.prototype.applyBlockAttributeAtRange = function (t, e, i) {\n var o, r, s, a;\n return s = this.expandRangeToLineBreaksAndSplitBlocks(i), r = s.document, i = s.range, o = n(t), o.listAttribute ? (r = r.removeLastListAttributeAtRange(i, {\n exceptAttributeName: t\n }), a = r.convertLineBreaksToBlockBreaksInRange(i), r = a.document, i = a.range) : r = o.exclusive ? r.removeBlockAttributesAtRange(i) : o.terminal ? r.removeLastTerminalAttributeAtRange(i) : r.consolidateBlocksAtRange(i), r.addAttributeAtRange(t, e, i);\n }, c.prototype.removeLastListAttributeAtRange = function (t, e) {\n var i;\n return null == e && (e = {}), i = this.blockList, this.eachBlockAtRange(t, function (t, o, r) {\n var s;\n if ((s = t.getLastAttribute()) && n(s).listAttribute && s !== e.exceptAttributeName) return i = i.editObjectAtIndex(r, function () {\n return t.removeAttribute(s);\n });\n }), new this.constructor(i);\n }, c.prototype.removeLastTerminalAttributeAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, i, o) {\n var r;\n if ((r = t.getLastAttribute()) && n(r).terminal) return e = e.editObjectAtIndex(o, function () {\n return t.removeAttribute(r);\n });\n }), new this.constructor(e);\n }, c.prototype.removeBlockAttributesAtRange = function (t) {\n var e;\n return e = this.blockList, this.eachBlockAtRange(t, function (t, n, i) {\n return t.hasAttributes() ? e = e.editObjectAtIndex(i, function () {\n return t.copyWithoutAttributes();\n }) : void 0;\n }), new this.constructor(e);\n }, c.prototype.expandRangeToLineBreaksAndSplitBlocks = function (t) {\n var e, n, o, r, s, a, u, c, l;\n return a = t = i(t), l = a[0], r = a[1], c = this.locationFromPosition(l), o = this.locationFromPosition(r), e = this, u = e.getBlockAtIndex(c.index), null != (c.offset = u.findLineBreakInDirectionFromPosition(\"backward\", c.offset)) && (s = e.positionFromLocation(c), e = e.insertBlockBreakAtRange([s, s + 1]), o.index += 1, o.offset -= e.getBlockAtIndex(c.index).getLength(), c.index += 1), c.offset = 0, 0 === o.offset && o.index > c.index ? (o.index -= 1, o.offset = e.getBlockAtIndex(o.index).getBlockBreakPosition()) : (n = e.getBlockAtIndex(o.index), \"\\n\" === n.text.getStringAtRange([o.offset - 1, o.offset]) ? o.offset -= 1 : o.offset = n.findLineBreakInDirectionFromPosition(\"forward\", o.offset), o.offset !== n.getBlockBreakPosition() && (s = e.positionFromLocation(o), e = e.insertBlockBreakAtRange([s, s + 1]))), l = e.positionFromLocation(c), r = e.positionFromLocation(o), t = i([l, r]), {\n document: e,\n range: t\n };\n }, c.prototype.convertLineBreaksToBlockBreaksInRange = function (t) {\n var e, n, o;\n return n = (t = i(t))[0], o = this.getStringAtRange(t).slice(0, -1), e = this, o.replace(/.*?\\n/g, function (t) {\n return n += t.length, e = e.insertBlockBreakAtRange([n - 1, n]);\n }), {\n document: e,\n range: t\n };\n }, c.prototype.consolidateBlocksAtRange = function (t) {\n var e, n, o, r, s;\n return o = t = i(t), s = o[0], n = o[1], r = this.locationFromPosition(s).index, e = this.locationFromPosition(n).index, new this.constructor(this.blockList.consolidateFromIndexToIndex(r, e));\n }, c.prototype.getDocumentAtRange = function (t) {\n var e;\n return t = i(t), e = this.blockList.getSplittableListInRange(t).toArray(), new this.constructor(e);\n }, c.prototype.getStringAtRange = function (t) {\n var e, n, o;\n return o = t = i(t), n = o[o.length - 1], n !== this.getLength() && (e = -1), this.getDocumentAtRange(t).toString().slice(0, e);\n }, c.prototype.getBlockAtIndex = function (t) {\n return this.blockList.getObjectAtIndex(t);\n }, c.prototype.getBlockAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getBlockAtIndex(e);\n }, c.prototype.getTextAtIndex = function (t) {\n var e;\n return null != (e = this.getBlockAtIndex(t)) ? e.text : void 0;\n }, c.prototype.getTextAtPosition = function (t) {\n var e;\n return e = this.locationFromPosition(t).index, this.getTextAtIndex(e);\n }, c.prototype.getPieceAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getPieceAtPosition(n);\n }, c.prototype.getCharacterAtPosition = function (t) {\n var e, n, i;\n return i = this.locationFromPosition(t), e = i.index, n = i.offset, this.getTextAtIndex(e).getStringAtRange([n, n + 1]);\n }, c.prototype.getLength = function () {\n return this.blockList.getEndPosition();\n }, c.prototype.getBlocks = function () {\n return this.blockList.toArray();\n }, c.prototype.getBlockCount = function () {\n return this.blockList.length;\n }, c.prototype.getEditCount = function () {\n return this.editCount;\n }, c.prototype.eachBlock = function (t) {\n return this.blockList.eachObject(t);\n }, c.prototype.eachBlockAtRange = function (t, e) {\n var n, o, r, s, a, u, c, l, h, p, d, f;\n if (u = t = i(t), d = u[0], r = u[1], p = this.locationFromPosition(d), o = this.locationFromPosition(r), p.index === o.index) return n = this.getBlockAtIndex(p.index), f = [p.offset, o.offset], e(n, f, p.index);\n\n for (h = [], a = s = c = p.index, l = o.index; l >= c ? l >= s : s >= l; a = l >= c ? ++s : --s) {\n (n = this.getBlockAtIndex(a)) ? (f = function () {\n switch (a) {\n case p.index:\n return [p.offset, n.text.getLength()];\n\n case o.index:\n return [0, o.offset];\n\n default:\n return [0, n.text.getLength()];\n }\n }(), h.push(e(n, f, a))) : h.push(void 0);\n }\n\n return h;\n }, c.prototype.getCommonAttributesAtRange = function (t) {\n var n, r, s;\n return r = (t = i(t))[0], o(t) ? this.getCommonAttributesAtPosition(r) : (s = [], n = [], this.eachBlockAtRange(t, function (t, e) {\n return e[0] !== e[1] ? (s.push(t.text.getCommonAttributesAtRange(e)), n.push(l(t))) : void 0;\n }), e.Hash.fromCommonAttributesOfObjects(s).merge(e.Hash.fromCommonAttributesOfObjects(n)).toObject());\n }, c.prototype.getCommonAttributesAtPosition = function (t) {\n var n, i, o, r, s, a, c, h, p, d;\n if (p = this.locationFromPosition(t), s = p.index, h = p.offset, o = this.getBlockAtIndex(s), !o) return {};\n r = l(o), n = o.text.getAttributesAtPosition(h), i = o.text.getAttributesAtPosition(h - 1), a = function () {\n var t, n;\n t = e.config.textAttributes, n = [];\n\n for (c in t) {\n d = t[c], d.inheritable && n.push(c);\n }\n\n return n;\n }();\n\n for (c in i) {\n d = i[c], (d === n[c] || u.call(a, c) >= 0) && (r[c] = d);\n }\n\n return r;\n }, c.prototype.getRangeOfCommonAttributeAtPosition = function (t, e) {\n var n, o, r, s, a, u, c, l, h;\n return a = this.locationFromPosition(e), r = a.index, s = a.offset, h = this.getTextAtIndex(r), u = h.getExpandedRangeForAttributeAtOffset(t, s), l = u[0], o = u[1], c = this.positionFromLocation({\n index: r,\n offset: l\n }), n = this.positionFromLocation({\n index: r,\n offset: o\n }), i([c, n]);\n }, c.prototype.getBaseBlockAttributes = function () {\n var t, e, n, i, o, r, s;\n\n for (t = this.getBlockAtIndex(0).getAttributes(), n = i = 1, s = this.getBlockCount(); s >= 1 ? s > i : i > s; n = s >= 1 ? ++i : --i) {\n e = this.getBlockAtIndex(n).getAttributes(), r = Math.min(t.length, e.length), t = function () {\n var n, i, s;\n\n for (s = [], o = n = 0, i = r; (i >= 0 ? i > n : n > i) && e[o] === t[o]; o = i >= 0 ? ++n : --n) {\n s.push(e[o]);\n }\n\n return s;\n }();\n }\n\n return t;\n }, l = function l(t) {\n var e, n;\n return n = {}, (e = t.getLastAttribute()) && (n[e] = !0), n;\n }, c.prototype.getAttachmentById = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (e = o[n], e.id === t) return e;\n }\n }, c.prototype.getAttachmentPieces = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n var n;\n return n = e.text, t = t.concat(n.getAttachmentPieces());\n }), t;\n }, c.prototype.getAttachments = function () {\n var t, e, n, i, o;\n\n for (i = this.getAttachmentPieces(), o = [], t = 0, e = i.length; e > t; t++) {\n n = i[t], o.push(n.attachment);\n }\n\n return o;\n }, c.prototype.getRangeOfAttachment = function (t) {\n var e, n, o, r, s, a, u;\n\n for (r = 0, s = this.blockList.toArray(), n = e = 0, o = s.length; o > e; n = ++e) {\n if (a = s[n].text, u = a.getRangeOfAttachment(t)) return i([r + u[0], r + u[1]]);\n r += a.getLength();\n }\n }, c.prototype.getLocationRangeOfAttachment = function (t) {\n var e;\n return e = this.getRangeOfAttachment(t), this.locationRangeFromRange(e);\n }, c.prototype.getAttachmentPieceForAttachment = function (t) {\n var e, n, i, o;\n\n for (o = this.getAttachmentPieces(), e = 0, n = o.length; n > e; e++) {\n if (i = o[e], i.attachment === t) return i;\n }\n }, c.prototype.findRangesForBlockAttribute = function (t) {\n var e, n, i, o, r, s, a;\n\n for (r = 0, s = [], a = this.getBlocks(), n = 0, i = a.length; i > n; n++) {\n e = a[n], o = e.getLength(), e.hasAttribute(t) && s.push([r, r + o]), r += o;\n }\n\n return s;\n }, c.prototype.findRangesForTextAttribute = function (t, e) {\n var n, i, o, r, s, a, u, c, l, h;\n\n for (h = (null != e ? e : {}).withValue, a = 0, u = [], c = [], r = function r(e) {\n return null != h ? e.getAttribute(t) === h : e.hasAttribute(t);\n }, l = this.getPieces(), n = 0, i = l.length; i > n; n++) {\n s = l[n], o = s.getLength(), r(s) && (u[1] === a ? u[1] = a + o : c.push(u = [a, a + o])), a += o;\n }\n\n return c;\n }, c.prototype.locationFromPosition = function (t) {\n var e, n;\n return n = this.blockList.findIndexAndOffsetAtPosition(Math.max(0, t)), null != n.index ? n : (e = this.getBlocks(), {\n index: e.length - 1,\n offset: e[e.length - 1].getLength()\n });\n }, c.prototype.positionFromLocation = function (t) {\n return this.blockList.findPositionAtIndexAndOffset(t.index, t.offset);\n }, c.prototype.locationRangeFromPosition = function (t) {\n return i(this.locationFromPosition(t));\n }, c.prototype.locationRangeFromRange = function (t) {\n var e, n, o, r;\n if (t = i(t)) return r = t[0], n = t[1], o = this.locationFromPosition(r), e = this.locationFromPosition(n), i([o, e]);\n }, c.prototype.rangeFromLocationRange = function (t) {\n var e, n;\n return t = i(t), e = this.positionFromLocation(t[0]), o(t) || (n = this.positionFromLocation(t[1])), i([e, n]);\n }, c.prototype.isEqualTo = function (t) {\n return this.blockList.isEqualTo(null != t ? t.blockList : void 0);\n }, c.prototype.getTexts = function () {\n var t, e, n, i, o;\n\n for (i = this.getBlocks(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(t.text);\n }\n\n return o;\n }, c.prototype.getPieces = function () {\n var t, e, n, i, o;\n\n for (n = [], i = this.getTexts(), t = 0, e = i.length; e > t; t++) {\n o = i[t], n.push.apply(n, o.getPieces());\n }\n\n return n;\n }, c.prototype.getObjects = function () {\n return this.getBlocks().concat(this.getTexts()).concat(this.getPieces());\n }, c.prototype.toSerializableDocument = function () {\n var t;\n return t = [], this.blockList.eachObject(function (e) {\n return t.push(e.copyWithText(e.text.toSerializableText()));\n }), new this.constructor(t);\n }, c.prototype.toString = function () {\n return this.blockList.toString();\n }, c.prototype.toJSON = function () {\n return this.blockList.toJSON();\n }, c.prototype.toConsole = function () {\n var t;\n return JSON.stringify(function () {\n var e, n, i, o;\n\n for (i = this.blockList.toArray(), o = [], e = 0, n = i.length; n > e; e++) {\n t = i[e], o.push(JSON.parse(t.text.toConsole()));\n }\n\n return o;\n }.call(this));\n }, c;\n }(e.Object);\n }.call(this), function () {\n e.LineBreakInsertion = function () {\n function t(t) {\n var e;\n this.composition = t, this.document = this.composition.document, e = this.composition.getSelectedRange(), this.startPosition = e[0], this.endPosition = e[1], this.startLocation = this.document.locationFromPosition(this.startPosition), this.endLocation = this.document.locationFromPosition(this.endPosition), this.block = this.document.getBlockAtIndex(this.endLocation.index), this.breaksOnReturn = this.block.breaksOnReturn(), this.previousCharacter = this.block.text.getStringAtPosition(this.endLocation.offset - 1), this.nextCharacter = this.block.text.getStringAtPosition(this.endLocation.offset);\n }\n\n return t.prototype.shouldInsertBlockBreak = function () {\n return this.block.hasAttributes() && this.block.isListItem() && !this.block.isEmpty() ? 0 !== this.startLocation.offset : this.breaksOnReturn && \"\\n\" !== this.nextCharacter;\n }, t.prototype.shouldBreakFormattedBlock = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && (this.breaksOnReturn && \"\\n\" === this.nextCharacter || \"\\n\" === this.previousCharacter);\n }, t.prototype.shouldDecreaseListLevel = function () {\n return this.block.hasAttributes() && this.block.isListItem() && this.block.isEmpty();\n }, t.prototype.shouldPrependListItem = function () {\n return this.block.isListItem() && 0 === this.startLocation.offset && !this.block.isEmpty();\n }, t.prototype.shouldRemoveLastBlockAttribute = function () {\n return this.block.hasAttributes() && !this.block.isListItem() && this.block.isEmpty();\n }, t;\n }();\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n p.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n p = {}.hasOwnProperty;\n\n s = e.normalizeRange, c = e.rangesAreEqual, u = e.rangeIsCollapsed, a = e.objectsAreEqual, t = e.arrayStartsWith, l = e.summarizeArrayChange, i = e.getAllAttributeNames, o = e.getBlockConfig, r = e.getTextConfig, n = e.extend, e.Composition = function (p) {\n function d() {\n this.document = new e.Document(), this.attachments = [], this.currentAttributes = {}, this.revision = 0;\n }\n\n var f;\n return h(d, p), d.prototype.setDocument = function (t) {\n var e;\n return t.isEqualTo(this.document) ? void 0 : (this.document = t, this.refreshAttachments(), this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeDocument ? e.compositionDidChangeDocument(t) : void 0);\n }, d.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.getSelectedRange()\n };\n }, d.prototype.loadSnapshot = function (t) {\n var n, i, o, r;\n return n = t.document, r = t.selectedRange, null != (i = this.delegate) && \"function\" == typeof i.compositionWillLoadSnapshot && i.compositionWillLoadSnapshot(), this.setDocument(null != n ? n : new e.Document()), this.setSelection(null != r ? r : [0, 0]), null != (o = this.delegate) && \"function\" == typeof o.compositionDidLoadSnapshot ? o.compositionDidLoadSnapshot() : void 0;\n }, d.prototype.insertText = function (t, e) {\n var n, i, o, r;\n return r = (null != e ? e : {\n updatePosition: !0\n }).updatePosition, i = this.getSelectedRange(), this.setDocument(this.document.insertTextAtRange(t, i)), o = i[0], n = o + t.getLength(), r && this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertBlock = function (t) {\n var n;\n return null == t && (t = new e.Block()), n = new e.Document([t]), this.insertDocument(n);\n }, d.prototype.insertDocument = function (t) {\n var n, i, o;\n return null == t && (t = new e.Document()), i = this.getSelectedRange(), this.setDocument(this.document.insertDocumentAtRange(t, i)), o = i[0], n = o + t.getLength(), this.setSelection(n), this.notifyDelegateOfInsertionAtRange([o, n]);\n }, d.prototype.insertString = function (t, n) {\n var i, o;\n return i = this.getCurrentTextAttributes(), o = e.Text.textForStringWithAttributes(t, i), this.insertText(o, n);\n }, d.prototype.insertBlockBreak = function () {\n var t, e, n;\n return e = this.getSelectedRange(), this.setDocument(this.document.insertBlockBreakAtRange(e)), n = e[0], t = n + 1, this.setSelection(t), this.notifyDelegateOfInsertionAtRange([n, t]);\n }, d.prototype.insertLineBreak = function () {\n var t, n;\n return n = new e.LineBreakInsertion(this), n.shouldDecreaseListLevel() ? (this.decreaseListLevel(), this.setSelection(n.startPosition)) : n.shouldPrependListItem() ? (t = new e.Document([n.block.copyWithoutText()]), this.insertDocument(t)) : n.shouldInsertBlockBreak() ? this.insertBlockBreak() : n.shouldRemoveLastBlockAttribute() ? this.removeLastBlockAttribute() : n.shouldBreakFormattedBlock() ? this.breakFormattedBlock(n) : this.insertString(\"\\n\");\n }, d.prototype.insertHTML = function (t) {\n var n, i, o, r;\n return n = e.Document.fromHTML(t), o = this.getSelectedRange(), this.setDocument(this.document.mergeDocumentAtRange(n, o)), r = o[0], i = r + n.getLength() - 1, this.setSelection(i), this.notifyDelegateOfInsertionAtRange([r, i]);\n }, d.prototype.replaceHTML = function (t) {\n var n, i, o;\n return n = e.Document.fromHTML(t).copyUsingObjectsFromDocument(this.document), i = this.getLocationRange({\n strict: !1\n }), o = this.document.rangeFromLocationRange(i), this.setDocument(n), this.setSelection(o);\n }, d.prototype.insertFile = function (t) {\n return this.insertFiles([t]);\n }, d.prototype.insertFiles = function (t) {\n var n, i, o, r, s, a;\n\n for (i = [], r = 0, s = t.length; s > r; r++) {\n o = t[r], (null != (a = this.delegate) ? a.compositionShouldAcceptFile(o) : void 0) && (n = e.Attachment.attachmentForFile(o), i.push(n));\n }\n\n return this.insertAttachments(i);\n }, d.prototype.insertAttachment = function (t) {\n return this.insertAttachments([t]);\n }, d.prototype.insertAttachments = function (t) {\n var n, i, o, r, s, a, u, c, l;\n\n for (c = new e.Text(), r = 0, s = t.length; s > r; r++) {\n n = t[r], l = n.getType(), a = null != (u = e.config.attachments[l]) ? u.presentation : void 0, o = this.getCurrentTextAttributes(), a && (o.presentation = a), i = e.Text.textForAttachmentWithAttributes(n, o), c = c.appendText(i);\n }\n\n return this.insertText(c);\n }, d.prototype.shouldManageDeletingInDirection = function (t) {\n var e;\n\n if (e = this.getLocationRange(), u(e)) {\n if (\"backward\" === t && 0 === e[0].offset) return !0;\n if (this.shouldManageMovingCursorInDirection(t)) return !0;\n } else if (e[0].index !== e[1].index) return !0;\n\n return !1;\n }, d.prototype.deleteInDirection = function (t, e) {\n var n, i, o, r, s, a, c, l;\n return r = (null != e ? e : {}).length, s = this.getLocationRange(), a = this.getSelectedRange(), c = u(a), c ? o = \"backward\" === t && 0 === s[0].offset : l = s[0].index !== s[1].index, o && this.canDecreaseBlockAttributeLevel() && (i = this.getBlock(), i.isListItem() ? this.decreaseListLevel() : this.decreaseBlockAttributeLevel(), this.setSelection(a[0]), i.isEmpty()) ? !1 : (c && (a = this.getExpandedRangeInDirection(t, {\n length: r\n }), \"backward\" === t && (n = this.getAttachmentAtRange(a))), n ? (this.editAttachment(n), !1) : (this.setDocument(this.document.removeTextAtRange(a)), this.setSelection(a[0]), o || l ? !1 : void 0));\n }, d.prototype.moveTextFromRange = function (t) {\n var e;\n return e = this.getSelectedRange()[0], this.setDocument(this.document.moveTextFromRangeToPosition(t, e)), this.setSelection(e);\n }, d.prototype.removeAttachment = function (t) {\n var e;\n return (e = this.document.getRangeOfAttachment(t)) ? (this.stopEditingAttachment(), this.setDocument(this.document.removeTextAtRange(e)), this.setSelection(e[0])) : void 0;\n }, d.prototype.removeLastBlockAttribute = function () {\n var t, e, n, i;\n return n = this.getSelectedRange(), i = n[0], e = n[1], t = this.document.getBlockAtPosition(e), this.removeCurrentAttribute(t.getLastAttribute()), this.setSelection(i);\n }, f = \" \", d.prototype.insertPlaceholder = function () {\n return this.placeholderPosition = this.getPosition(), this.insertString(f);\n }, d.prototype.selectPlaceholder = function () {\n return null != this.placeholderPosition ? (this.setSelectedRange([this.placeholderPosition, this.placeholderPosition + f.length]), this.getSelectedRange()) : void 0;\n }, d.prototype.forgetPlaceholder = function () {\n return this.placeholderPosition = null;\n }, d.prototype.hasCurrentAttribute = function (t) {\n var e;\n return e = this.currentAttributes[t], null != e && e !== !1;\n }, d.prototype.toggleCurrentAttribute = function (t) {\n var e;\n return (e = !this.currentAttributes[t]) ? this.setCurrentAttribute(t, e) : this.removeCurrentAttribute(t);\n }, d.prototype.canSetCurrentAttribute = function (t) {\n return o(t) ? this.canSetCurrentBlockAttribute(t) : this.canSetCurrentTextAttribute(t);\n }, d.prototype.canSetCurrentTextAttribute = function () {\n var t, e, n, i, o;\n\n if (e = this.getSelectedDocument()) {\n for (o = e.getAttachments(), n = 0, i = o.length; i > n; n++) {\n if (t = o[n], !t.hasContent()) return !1;\n }\n\n return !0;\n }\n }, d.prototype.canSetCurrentBlockAttribute = function () {\n var t;\n if (t = this.getBlock()) return !t.isTerminalBlock();\n }, d.prototype.setCurrentAttribute = function (t, e) {\n return o(t) ? this.setBlockAttribute(t, e) : (this.setTextAttribute(t, e), this.currentAttributes[t] = e, this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.setTextAttribute = function (t, n) {\n var i, o, r, s;\n if (o = this.getSelectedRange()) return r = o[0], i = o[1], r !== i ? this.setDocument(this.document.addAttributeAtRange(t, n, o)) : \"href\" === t ? (s = e.Text.textForStringWithAttributes(n, {\n href: n\n }), this.insertText(s)) : void 0;\n }, d.prototype.setBlockAttribute = function (t, e) {\n var n, i;\n if (i = this.getSelectedRange()) return this.canSetCurrentAttribute(t) ? (n = this.getBlock(), this.setDocument(this.document.applyBlockAttributeAtRange(t, e, i)), this.setSelection(i)) : void 0;\n }, d.prototype.removeCurrentAttribute = function (t) {\n return o(t) ? (this.removeBlockAttribute(t), this.updateCurrentAttributes()) : (this.removeTextAttribute(t), delete this.currentAttributes[t], this.notifyDelegateOfCurrentAttributesChange());\n }, d.prototype.removeTextAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.removeBlockAttribute = function (t) {\n var e;\n if (e = this.getSelectedRange()) return this.setDocument(this.document.removeAttributeAtRange(t, e));\n }, d.prototype.canDecreaseNestingLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getNestingLevel() : void 0) > 0;\n }, d.prototype.canIncreaseNestingLevel = function () {\n var e, n, i;\n if (e = this.getBlock()) return (null != (i = o(e.getLastNestableAttribute())) ? i.listAttribute : 0) ? (n = this.getPreviousBlock()) ? t(n.getListItemAttributes(), e.getListItemAttributes()) : void 0 : e.getNestingLevel() > 0;\n }, d.prototype.decreaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.decreaseNestingLevel()));\n }, d.prototype.increaseNestingLevel = function () {\n var t;\n if (t = this.getBlock()) return this.setDocument(this.document.replaceBlock(t, t.increaseNestingLevel()));\n }, d.prototype.canDecreaseBlockAttributeLevel = function () {\n var t;\n return (null != (t = this.getBlock()) ? t.getAttributeLevel() : void 0) > 0;\n }, d.prototype.decreaseBlockAttributeLevel = function () {\n var t, e;\n return (t = null != (e = this.getBlock()) ? e.getLastAttribute() : void 0) ? this.removeCurrentAttribute(t) : void 0;\n }, d.prototype.decreaseListLevel = function () {\n var t, e, n, i, o, r;\n\n for (r = this.getSelectedRange()[0], o = this.document.locationFromPosition(r).index, n = o, t = this.getBlock().getAttributeLevel(); (e = this.document.getBlockAtIndex(n + 1)) && e.isListItem() && e.getAttributeLevel() > t;) {\n n++;\n }\n\n return r = this.document.positionFromLocation({\n index: o,\n offset: 0\n }), i = this.document.positionFromLocation({\n index: n,\n offset: 0\n }), this.setDocument(this.document.removeLastListAttributeAtRange([r, i]));\n }, d.prototype.updateCurrentAttributes = function () {\n var t, e, n, o, r, s;\n\n if (s = this.getSelectedRange({\n ignoreLock: !0\n })) {\n for (e = this.document.getCommonAttributesAtRange(s), r = i(), n = 0, o = r.length; o > n; n++) {\n t = r[n], e[t] || this.canSetCurrentAttribute(t) || (e[t] = !1);\n }\n\n if (!a(e, this.currentAttributes)) return this.currentAttributes = e, this.notifyDelegateOfCurrentAttributesChange();\n }\n }, d.prototype.getCurrentAttributes = function () {\n return n.call({}, this.currentAttributes);\n }, d.prototype.getCurrentTextAttributes = function () {\n var t, e, n, i;\n t = {}, n = this.currentAttributes;\n\n for (e in n) {\n i = n[e], i !== !1 && r(e) && (t[e] = i);\n }\n\n return t;\n }, d.prototype.freezeSelection = function () {\n return this.setCurrentAttribute(\"frozen\", !0);\n }, d.prototype.thawSelection = function () {\n return this.removeCurrentAttribute(\"frozen\");\n }, d.prototype.hasFrozenSelection = function () {\n return this.hasCurrentAttribute(\"frozen\");\n }, d.proxyMethod(\"getSelectionManager().getPointRange\"), d.proxyMethod(\"getSelectionManager().setLocationRangeFromPointRange\"), d.proxyMethod(\"getSelectionManager().createLocationRangeFromDOMRange\"), d.proxyMethod(\"getSelectionManager().locationIsCursorTarget\"), d.proxyMethod(\"getSelectionManager().selectionIsExpanded\"), d.proxyMethod(\"delegate?.getSelectionManager\"), d.prototype.setSelection = function (t) {\n var e, n;\n return e = this.document.locationRangeFromRange(t), null != (n = this.delegate) ? n.compositionDidRequestChangingSelectionToLocationRange(e) : void 0;\n }, d.prototype.getSelectedRange = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.rangeFromLocationRange(t) : void 0;\n }, d.prototype.setSelectedRange = function (t) {\n var e;\n return e = this.document.locationRangeFromRange(t), this.getSelectionManager().setLocationRange(e);\n }, d.prototype.getPosition = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.positionFromLocation(t[0]) : void 0;\n }, d.prototype.getLocationRange = function (t) {\n var e, n;\n return null != (e = null != (n = this.targetLocationRange) ? n : this.getSelectionManager().getLocationRange(t)) ? e : s({\n index: 0,\n offset: 0\n });\n }, d.prototype.withTargetLocationRange = function (t, e) {\n var n;\n this.targetLocationRange = t;\n\n try {\n n = e();\n } finally {\n this.targetLocationRange = null;\n }\n\n return n;\n }, d.prototype.withTargetRange = function (t, e) {\n var n;\n return n = this.document.locationRangeFromRange(t), this.withTargetLocationRange(n, e);\n }, d.prototype.withTargetDOMRange = function (t, e) {\n var n;\n return n = this.createLocationRangeFromDOMRange(t, {\n strict: !1\n }), this.withTargetLocationRange(n, e);\n }, d.prototype.getExpandedRangeInDirection = function (t, e) {\n var n, i, o, r;\n return i = (null != e ? e : {}).length, o = this.getSelectedRange(), r = o[0], n = o[1], \"backward\" === t ? i ? r -= i : r = this.translateUTF16PositionFromOffset(r, -1) : i ? n += i : n = this.translateUTF16PositionFromOffset(n, 1), s([r, n]);\n }, d.prototype.shouldManageMovingCursorInDirection = function (t) {\n var e;\n return this.editingAttachment ? !0 : (e = this.getExpandedRangeInDirection(t), null != this.getAttachmentAtRange(e));\n }, d.prototype.moveCursorInDirection = function (t) {\n var e, n, i, o;\n return this.editingAttachment ? i = this.document.getRangeOfAttachment(this.editingAttachment) : (o = this.getSelectedRange(), i = this.getExpandedRangeInDirection(t), n = !c(o, i)), this.setSelectedRange(\"backward\" === t ? i[0] : i[1]), n && (e = this.getAttachmentAtRange(i)) ? this.editAttachment(e) : void 0;\n }, d.prototype.expandSelectionInDirection = function (t, e) {\n var n, i;\n return n = (null != e ? e : {}).length, i = this.getExpandedRangeInDirection(t, {\n length: n\n }), this.setSelectedRange(i);\n }, d.prototype.expandSelectionForEditing = function () {\n return this.hasCurrentAttribute(\"href\") ? this.expandSelectionAroundCommonAttribute(\"href\") : void 0;\n }, d.prototype.expandSelectionAroundCommonAttribute = function (t) {\n var e, n;\n return e = this.getPosition(), n = this.document.getRangeOfCommonAttributeAtPosition(t, e), this.setSelectedRange(n);\n }, d.prototype.selectionContainsAttachments = function () {\n var t;\n return (null != (t = this.getSelectedAttachments()) ? t.length : void 0) > 0;\n }, d.prototype.selectionIsInCursorTarget = function () {\n return this.editingAttachment || this.positionIsCursorTarget(this.getPosition());\n }, d.prototype.positionIsCursorTarget = function (t) {\n var e;\n return (e = this.document.locationFromPosition(t)) ? this.locationIsCursorTarget(e) : void 0;\n }, d.prototype.positionIsBlockBreak = function (t) {\n var e;\n return null != (e = this.document.getPieceAtPosition(t)) ? e.isBlockBreak() : void 0;\n }, d.prototype.getSelectedDocument = function () {\n var t;\n return (t = this.getSelectedRange()) ? this.document.getDocumentAtRange(t) : void 0;\n }, d.prototype.getSelectedAttachments = function () {\n var t;\n return null != (t = this.getSelectedDocument()) ? t.getAttachments() : void 0;\n }, d.prototype.getAttachments = function () {\n return this.attachments.slice(0);\n }, d.prototype.refreshAttachments = function () {\n var t, e, n, i, o, r, s, a, u, c, h, p;\n\n for (n = this.document.getAttachments(), a = l(this.attachments, n), t = a.added, h = a.removed, this.attachments = n, i = 0, r = h.length; r > i; i++) {\n e = h[i], e.delegate = null, null != (u = this.delegate) && \"function\" == typeof u.compositionDidRemoveAttachment && u.compositionDidRemoveAttachment(e);\n }\n\n for (p = [], o = 0, s = t.length; s > o; o++) {\n e = t[o], e.delegate = this, p.push(null != (c = this.delegate) && \"function\" == typeof c.compositionDidAddAttachment ? c.compositionDidAddAttachment(e) : void 0);\n }\n\n return p;\n }, d.prototype.attachmentDidChangeAttributes = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidEditAttachment ? e.compositionDidEditAttachment(t) : void 0;\n }, d.prototype.attachmentDidChangePreviewURL = function (t) {\n var e;\n return this.revision++, null != (e = this.delegate) && \"function\" == typeof e.compositionDidChangeAttachmentPreviewURL ? e.compositionDidChangeAttachmentPreviewURL(t) : void 0;\n }, d.prototype.editAttachment = function (t, e) {\n var n;\n if (t !== this.editingAttachment) return this.stopEditingAttachment(), this.editingAttachment = t, null != (n = this.delegate) && \"function\" == typeof n.compositionDidStartEditingAttachment ? n.compositionDidStartEditingAttachment(this.editingAttachment, e) : void 0;\n }, d.prototype.stopEditingAttachment = function () {\n var t;\n if (this.editingAttachment) return null != (t = this.delegate) && \"function\" == typeof t.compositionDidStopEditingAttachment && t.compositionDidStopEditingAttachment(this.editingAttachment), this.editingAttachment = null;\n }, d.prototype.updateAttributesForAttachment = function (t, e) {\n return this.setDocument(this.document.updateAttributesForAttachment(t, e));\n }, d.prototype.removeAttributeForAttachment = function (t, e) {\n return this.setDocument(this.document.removeAttributeForAttachment(t, e));\n }, d.prototype.breakFormattedBlock = function (t) {\n var n, i, o, r, s;\n return i = t.document, n = t.block, r = t.startPosition, s = [r - 1, r], n.getBlockBreakPosition() === t.startLocation.offset ? (n.breaksOnReturn() && \"\\n\" === t.nextCharacter ? r += 1 : i = i.removeTextAtRange(s), s = [r, r]) : \"\\n\" === t.nextCharacter ? \"\\n\" === t.previousCharacter ? s = [r - 1, r + 1] : (s = [r, r + 1], r += 1) : t.startLocation.offset - 1 !== 0 && (r += 1), o = new e.Document([n.removeLastAttribute().copyWithoutText()]), this.setDocument(i.insertDocumentAtRange(o, s)), this.setSelection(r);\n }, d.prototype.getPreviousBlock = function () {\n var t, e;\n return (e = this.getLocationRange()) && (t = e[0].index, t > 0) ? this.document.getBlockAtIndex(t - 1) : void 0;\n }, d.prototype.getBlock = function () {\n var t;\n return (t = this.getLocationRange()) ? this.document.getBlockAtIndex(t[0].index) : void 0;\n }, d.prototype.getAttachmentAtRange = function (t) {\n var n;\n return n = this.document.getDocumentAtRange(t), n.toString() === e.OBJECT_REPLACEMENT_CHARACTER + \"\\n\" ? n.getAttachments()[0] : void 0;\n }, d.prototype.notifyDelegateOfCurrentAttributesChange = function () {\n var t;\n return null != (t = this.delegate) && \"function\" == typeof t.compositionDidChangeCurrentAttributes ? t.compositionDidChangeCurrentAttributes(this.currentAttributes) : void 0;\n }, d.prototype.notifyDelegateOfInsertionAtRange = function (t) {\n var e;\n return null != (e = this.delegate) && \"function\" == typeof e.compositionDidPerformInsertionAtRange ? e.compositionDidPerformInsertionAtRange(t) : void 0;\n }, d.prototype.translateUTF16PositionFromOffset = function (t, e) {\n var n, i;\n return i = this.document.toUTF16String(), n = i.offsetFromUCS2Offset(t), i.offsetToUCS2Offset(n + e);\n }, d;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t17, e) {\n function i() {\n this.constructor = _t17;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t17[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t17.prototype = new i(), _t17.__super__ = e.prototype, _t17;\n },\n n = {}.hasOwnProperty;\n\n e.UndoManager = function (e) {\n function n(t) {\n this.composition = t, this.undoEntries = [], this.redoEntries = [];\n }\n\n var i;\n return t(n, e), n.prototype.recordUndoEntry = function (t, e) {\n var n, o, r, s, a;\n return s = null != e ? e : {}, o = s.context, n = s.consolidatable, r = this.undoEntries.slice(-1)[0], n && i(r, t, o) ? void 0 : (a = this.createEntry({\n description: t,\n context: o\n }), this.undoEntries.push(a), this.redoEntries = []);\n }, n.prototype.undo = function () {\n var t, e;\n return (e = this.undoEntries.pop()) ? (t = this.createEntry(e), this.redoEntries.push(t), this.composition.loadSnapshot(e.snapshot)) : void 0;\n }, n.prototype.redo = function () {\n var t, e;\n return (t = this.redoEntries.pop()) ? (e = this.createEntry(t), this.undoEntries.push(e), this.composition.loadSnapshot(t.snapshot)) : void 0;\n }, n.prototype.canUndo = function () {\n return this.undoEntries.length > 0;\n }, n.prototype.canRedo = function () {\n return this.redoEntries.length > 0;\n }, n.prototype.createEntry = function (t) {\n var e, n, i;\n return i = null != t ? t : {}, n = i.description, e = i.context, {\n description: null != n ? n.toString() : void 0,\n context: JSON.stringify(e),\n snapshot: this.composition.getSnapshot()\n };\n }, i = function i(t, e, n) {\n return (null != t ? t.description : void 0) === (null != e ? e.toString() : void 0) && (null != t ? t.context : void 0) === JSON.stringify(n);\n }, n;\n }(e.BasicObject);\n }.call(this), function () {\n var t;\n e.attachmentGalleryFilter = function (e) {\n var n;\n return n = new t(e), n.perform(), n.getSnapshot();\n }, t = function () {\n function t(t) {\n this.document = t.document, this.selectedRange = t.selectedRange;\n }\n\n var e, n, i;\n return e = \"attachmentGallery\", n = \"presentation\", i = \"gallery\", t.prototype.perform = function () {\n return this.removeBlockAttribute(), this.applyBlockAttribute();\n }, t.prototype.getSnapshot = function () {\n return {\n document: this.document,\n selectedRange: this.selectedRange\n };\n }, t.prototype.removeBlockAttribute = function () {\n var t, n, i, o, r;\n\n for (o = this.findRangesOfBlocks(), r = [], t = 0, n = o.length; n > t; t++) {\n i = o[t], r.push(this.document = this.document.removeAttributeAtRange(e, i));\n }\n\n return r;\n }, t.prototype.applyBlockAttribute = function () {\n var t, n, i, o, r, s;\n\n for (i = 0, r = this.findRangesOfPieces(), s = [], t = 0, n = r.length; n > t; t++) {\n o = r[t], o[1] - o[0] > 1 && (o[0] += i, o[1] += i, \"\\n\" !== this.document.getCharacterAtPosition(o[1]) && (this.document = this.document.insertBlockBreakAtRange(o[1]), o[1] < this.selectedRange[1] && this.moveSelectedRangeForward(), o[1]++, i++), 0 !== o[0] && \"\\n\" !== this.document.getCharacterAtPosition(o[0] - 1) && (this.document = this.document.insertBlockBreakAtRange(o[0]), o[0] < this.selectedRange[0] && this.moveSelectedRangeForward(), o[0]++, i++), s.push(this.document = this.document.applyBlockAttributeAtRange(e, !0, o)));\n }\n\n return s;\n }, t.prototype.findRangesOfBlocks = function () {\n return this.document.findRangesForBlockAttribute(e);\n }, t.prototype.findRangesOfPieces = function () {\n return this.document.findRangesForTextAttribute(n, {\n withValue: i\n });\n }, t.prototype.moveSelectedRangeForward = function () {\n return this.selectedRange[0] += 1, this.selectedRange[1] += 1;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t18, e) {\n return function () {\n return _t18.apply(e, arguments);\n };\n };\n\n e.Editor = function () {\n function n(n, o, r) {\n this.composition = n, this.selectionManager = o, this.element = r, this.insertFiles = t(this.insertFiles, this), this.undoManager = new e.UndoManager(this.composition), this.filters = i.slice(0);\n }\n\n var i;\n return i = [e.attachmentGalleryFilter], n.prototype.loadDocument = function (t) {\n return this.loadSnapshot({\n document: t,\n selectedRange: [0, 0]\n });\n }, n.prototype.loadHTML = function (t) {\n return null == t && (t = \"\"), this.loadDocument(e.Document.fromHTML(t, {\n referenceElement: this.element\n }));\n }, n.prototype.loadJSON = function (t) {\n var n, i;\n return n = t.document, i = t.selectedRange, n = e.Document.fromJSON(n), this.loadSnapshot({\n document: n,\n selectedRange: i\n });\n }, n.prototype.loadSnapshot = function (t) {\n return this.undoManager = new e.UndoManager(this.composition), this.composition.loadSnapshot(t);\n }, n.prototype.getDocument = function () {\n return this.composition.document;\n }, n.prototype.getSelectedDocument = function () {\n return this.composition.getSelectedDocument();\n }, n.prototype.getSnapshot = function () {\n return this.composition.getSnapshot();\n }, n.prototype.toJSON = function () {\n return this.getSnapshot();\n }, n.prototype.deleteInDirection = function (t) {\n return this.composition.deleteInDirection(t);\n }, n.prototype.insertAttachment = function (t) {\n return this.composition.insertAttachment(t);\n }, n.prototype.insertAttachments = function (t) {\n return this.composition.insertAttachments(t);\n }, n.prototype.insertDocument = function (t) {\n return this.composition.insertDocument(t);\n }, n.prototype.insertFile = function (t) {\n return this.composition.insertFile(t);\n }, n.prototype.insertFiles = function (t) {\n return this.composition.insertFiles(t);\n }, n.prototype.insertHTML = function (t) {\n return this.composition.insertHTML(t);\n }, n.prototype.insertString = function (t) {\n return this.composition.insertString(t);\n }, n.prototype.insertText = function (t) {\n return this.composition.insertText(t);\n }, n.prototype.insertLineBreak = function () {\n return this.composition.insertLineBreak();\n }, n.prototype.getSelectedRange = function () {\n return this.composition.getSelectedRange();\n }, n.prototype.getPosition = function () {\n return this.composition.getPosition();\n }, n.prototype.getClientRectAtPosition = function (t) {\n var e;\n return e = this.getDocument().locationRangeFromRange([t, t + 1]), this.selectionManager.getClientRectAtLocationRange(e);\n }, n.prototype.expandSelectionInDirection = function (t) {\n return this.composition.expandSelectionInDirection(t);\n }, n.prototype.moveCursorInDirection = function (t) {\n return this.composition.moveCursorInDirection(t);\n }, n.prototype.setSelectedRange = function (t) {\n return this.composition.setSelectedRange(t);\n }, n.prototype.activateAttribute = function (t, e) {\n return null == e && (e = !0), this.composition.setCurrentAttribute(t, e);\n }, n.prototype.attributeIsActive = function (t) {\n return this.composition.hasCurrentAttribute(t);\n }, n.prototype.canActivateAttribute = function (t) {\n return this.composition.canSetCurrentAttribute(t);\n }, n.prototype.deactivateAttribute = function (t) {\n return this.composition.removeCurrentAttribute(t);\n }, n.prototype.canDecreaseNestingLevel = function () {\n return this.composition.canDecreaseNestingLevel();\n }, n.prototype.canIncreaseNestingLevel = function () {\n return this.composition.canIncreaseNestingLevel();\n }, n.prototype.decreaseNestingLevel = function () {\n return this.canDecreaseNestingLevel() ? this.composition.decreaseNestingLevel() : void 0;\n }, n.prototype.increaseNestingLevel = function () {\n return this.canIncreaseNestingLevel() ? this.composition.increaseNestingLevel() : void 0;\n }, n.prototype.canRedo = function () {\n return this.undoManager.canRedo();\n }, n.prototype.canUndo = function () {\n return this.undoManager.canUndo();\n }, n.prototype.recordUndoEntry = function (t, e) {\n var n, i, o;\n return o = null != e ? e : {}, i = o.context, n = o.consolidatable, this.undoManager.recordUndoEntry(t, {\n context: i,\n consolidatable: n\n });\n }, n.prototype.redo = function () {\n return this.canRedo() ? this.undoManager.redo() : void 0;\n }, n.prototype.undo = function () {\n return this.canUndo() ? this.undoManager.undo() : void 0;\n }, n;\n }();\n }.call(this), function () {\n var t = function t(_t19, e) {\n function i() {\n this.constructor = _t19;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t19[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t19.prototype = new i(), _t19.__super__ = e.prototype, _t19;\n },\n n = {}.hasOwnProperty;\n\n e.ManagedAttachment = function (e) {\n function n(t, e) {\n var n;\n this.attachmentManager = t, this.attachment = e, n = this.attachment, this.id = n.id, this.file = n.file;\n }\n\n return t(n, e), n.prototype.remove = function () {\n return this.attachmentManager.requestRemovalOfAttachment(this.attachment);\n }, n.proxyMethod(\"attachment.getAttribute\"), n.proxyMethod(\"attachment.hasAttribute\"), n.proxyMethod(\"attachment.setAttribute\"), n.proxyMethod(\"attachment.getAttributes\"), n.proxyMethod(\"attachment.setAttributes\"), n.proxyMethod(\"attachment.isPending\"), n.proxyMethod(\"attachment.isPreviewable\"), n.proxyMethod(\"attachment.getURL\"), n.proxyMethod(\"attachment.getHref\"), n.proxyMethod(\"attachment.getFilename\"), n.proxyMethod(\"attachment.getFilesize\"), n.proxyMethod(\"attachment.getFormattedFilesize\"), n.proxyMethod(\"attachment.getExtension\"), n.proxyMethod(\"attachment.getContentType\"), n.proxyMethod(\"attachment.getFile\"), n.proxyMethod(\"attachment.setFile\"), n.proxyMethod(\"attachment.releaseFile\"), n.proxyMethod(\"attachment.getUploadProgress\"), n.proxyMethod(\"attachment.setUploadProgress\"), n;\n }(e.BasicObject);\n }.call(this), function () {\n var t = function t(_t20, e) {\n function i() {\n this.constructor = _t20;\n }\n\n for (var o in e) {\n n.call(e, o) && (_t20[o] = e[o]);\n }\n\n return i.prototype = e.prototype, _t20.prototype = new i(), _t20.__super__ = e.prototype, _t20;\n },\n n = {}.hasOwnProperty;\n\n e.AttachmentManager = function (n) {\n function i(t) {\n var e, n, i;\n\n for (null == t && (t = []), this.managedAttachments = {}, n = 0, i = t.length; i > n; n++) {\n e = t[n], this.manageAttachment(e);\n }\n }\n\n return t(i, n), i.prototype.getAttachments = function () {\n var t, e, n, i;\n n = this.managedAttachments, i = [];\n\n for (e in n) {\n t = n[e], i.push(t);\n }\n\n return i;\n }, i.prototype.manageAttachment = function (t) {\n var n, i;\n return null != (n = this.managedAttachments)[i = t.id] ? n[i] : n[i] = new e.ManagedAttachment(this, t);\n }, i.prototype.attachmentIsManaged = function (t) {\n return t.id in this.managedAttachments;\n }, i.prototype.requestRemovalOfAttachment = function (t) {\n var e;\n return this.attachmentIsManaged(t) && null != (e = this.delegate) && \"function\" == typeof e.attachmentManagerDidRequestRemovalOfAttachment ? e.attachmentManagerDidRequestRemovalOfAttachment(t) : void 0;\n }, i.prototype.unmanageAttachment = function (t) {\n var e;\n return e = this.managedAttachments[t.id], delete this.managedAttachments[t.id], e;\n }, i;\n }(e.BasicObject);\n }.call(this), function () {\n var t, n, i, o, r, s, a, u, c, l, h;\n t = e.elementContainsNode, n = e.findChildIndexOfNode, r = e.nodeIsBlockStart, s = e.nodeIsBlockStartComment, o = e.nodeIsBlockContainer, a = e.nodeIsCursorTarget, u = e.nodeIsEmptyTextNode, c = e.nodeIsTextNode, i = e.nodeIsAttachmentElement, l = e.tagName, h = e.walkTree, e.LocationMapper = function () {\n function e(t) {\n this.element = t;\n }\n\n var p, d, f, g;\n return e.prototype.findLocationFromContainerAndOffset = function (e, i, o) {\n var s, u, l, p, g, m, v;\n\n for (m = (null != o ? o : {\n strict: !0\n }).strict, u = 0, l = !1, p = {\n index: 0,\n offset: 0\n }, (s = this.findAttachmentElementParentForNode(e)) && (e = s.parentNode, i = n(s)), v = h(this.element, {\n usingFilter: f\n }); v.nextNode();) {\n if (g = v.currentNode, g === e && c(e)) {\n a(g) || (p.offset += i);\n break;\n }\n\n if (g.parentNode === e) {\n if (u++ === i) break;\n } else if (!t(e, g) && u > 0) break;\n\n r(g, {\n strict: m\n }) ? (l && p.index++, p.offset = 0, l = !0) : p.offset += d(g);\n }\n\n return p;\n }, e.prototype.findContainerAndOffsetFromLocation = function (t) {\n var e, i, s, u, l;\n\n if (0 === t.index && 0 === t.offset) {\n for (e = this.element, u = 0; e.firstChild;) {\n if (e = e.firstChild, o(e)) {\n u = 1;\n break;\n }\n }\n\n return [e, u];\n }\n\n if (l = this.findNodeAndOffsetFromLocation(t), i = l[0], s = l[1], i) {\n if (c(i)) 0 === d(i) ? (e = i.parentNode.parentNode, u = n(i.parentNode), a(i, {\n name: \"right\"\n }) && u++) : (e = i, u = t.offset - s);else {\n if (e = i.parentNode, !r(i.previousSibling) && !o(e)) for (; i === e.lastChild && (i = e, e = e.parentNode, !o(e));) {\n ;\n }\n u = n(i), 0 !== t.offset && u++;\n }\n return [e, u];\n }\n }, e.prototype.findNodeAndOffsetFromLocation = function (t) {\n var e, n, i, o, r, s, u, l;\n\n for (u = 0, l = this.getSignificantNodesForIndex(t.index), n = 0, i = l.length; i > n; n++) {\n if (e = l[n], o = d(e), t.offset <= u + o) if (c(e)) {\n if (r = e, s = u, t.offset === s && a(r)) break;\n } else r || (r = e, s = u);\n if (u += o, u > t.offset) break;\n }\n\n return [r, s];\n }, e.prototype.findAttachmentElementParentForNode = function (t) {\n for (; t && t !== this.element;) {\n if (i(t)) return t;\n t = t.parentNode;\n }\n }, e.prototype.getSignificantNodesForIndex = function (t) {\n var e, n, i, o, r;\n\n for (i = [], r = h(this.element, {\n usingFilter: p\n }), o = !1; r.nextNode();) {\n if (n = r.currentNode, s(n)) {\n if (\"undefined\" != typeof e && null !== e ? e++ : e = 0, e === t) o = !0;else if (o) break;\n } else o && i.push(n);\n }\n\n return i;\n }, d = function d(t) {\n var e;\n return t.nodeType === Node.TEXT_NODE ? a(t) ? 0 : (e = t.textContent, e.length) : \"br\" === l(t) || i(t) ? 1 : 0;\n }, p = function p(t) {\n return g(t) === NodeFilter.FILTER_ACCEPT ? f(t) : NodeFilter.FILTER_REJECT;\n }, g = function g(t) {\n return u(t) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, f = function f(t) {\n return i(t.parentNode) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }, e;\n }();\n }.call(this), function () {\n var t,\n n,\n i = [].slice;\n t = e.getDOMRange, n = e.setDOMRange, e.PointMapper = function () {\n function e() {}\n\n return e.prototype.createDOMRangeFromPoint = function (e) {\n var i, o, r, s, a, u, c, l;\n if (c = e.x, l = e.y, document.caretPositionFromPoint) return a = document.caretPositionFromPoint(c, l), r = a.offsetNode, o = a.offset, i = document.createRange(), i.setStart(r, o), i;\n if (document.caretRangeFromPoint) return document.caretRangeFromPoint(c, l);\n\n if (document.body.createTextRange) {\n s = t();\n\n try {\n u = document.body.createTextRange(), u.moveToPoint(c, l), u.select();\n } catch (h) {}\n\n return i = t(), n(s), i;\n }\n }, e.prototype.getClientRectsForDOMRange = function (t) {\n var e, n, o;\n return n = i.call(t.getClientRects()), o = n[0], e = n[n.length - 1], [o, e];\n }, e;\n }();\n }.call(this), function () {\n var t,\n n = function n(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n i = function i(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n o.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty,\n r = [].indexOf || function (t) {\n for (var e = 0, n = this.length; n > e; e++) {\n if (e in this && this[e] === t) return e;\n }\n\n return -1;\n };\n\n t = e.getDOMRange, e.SelectionChangeObserver = function (e) {\n function o() {\n this.run = n(this.run, this), this.update = n(this.update, this), this.selectionManagers = [];\n }\n\n var s;\n return i(o, e), o.prototype.start = function () {\n return this.started ? void 0 : (this.started = !0, \"onselectionchange\" in document ? document.addEventListener(\"selectionchange\", this.update, !0) : this.run());\n }, o.prototype.stop = function () {\n return this.started ? (this.started = !1, document.removeEventListener(\"selectionchange\", this.update, !0)) : void 0;\n }, o.prototype.registerSelectionManager = function (t) {\n return r.call(this.selectionManagers, t) < 0 ? (this.selectionManagers.push(t), this.start()) : void 0;\n }, o.prototype.unregisterSelectionManager = function (t) {\n var e;\n return this.selectionManagers = function () {\n var n, i, o, r;\n\n for (o = this.selectionManagers, r = [], n = 0, i = o.length; i > n; n++) {\n e = o[n], e !== t && r.push(e);\n }\n\n return r;\n }.call(this), 0 === this.selectionManagers.length ? this.stop() : void 0;\n }, o.prototype.notifySelectionManagersOfSelectionChange = function () {\n var t, e, n, i, o;\n\n for (n = this.selectionManagers, i = [], t = 0, e = n.length; e > t; t++) {\n o = n[t], i.push(o.selectionDidChange());\n }\n\n return i;\n }, o.prototype.update = function () {\n var e;\n return e = t(), s(e, this.domRange) ? void 0 : (this.domRange = e, this.notifySelectionManagersOfSelectionChange());\n }, o.prototype.reset = function () {\n return this.domRange = null, this.update();\n }, o.prototype.run = function () {\n return this.started ? (this.update(), requestAnimationFrame(this.run)) : void 0;\n }, s = function s(t, e) {\n return (null != t ? t.startContainer : void 0) === (null != e ? e.startContainer : void 0) && (null != t ? t.startOffset : void 0) === (null != e ? e.startOffset : void 0) && (null != t ? t.endContainer : void 0) === (null != e ? e.endContainer : void 0) && (null != t ? t.endOffset : void 0) === (null != e ? e.endOffset : void 0);\n }, o;\n }(e.BasicObject), null == e.selectionChangeObserver && (e.selectionChangeObserver = new e.SelectionChangeObserver());\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r,\n s,\n a,\n u,\n c,\n l,\n h = function h(t, e) {\n return function () {\n return t.apply(e, arguments);\n };\n },\n p = function p(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n d.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n d = {}.hasOwnProperty;\n\n i = e.getDOMSelection, n = e.getDOMRange, l = e.setDOMRange, t = e.elementContainsNode, s = e.nodeIsCursorTarget, r = e.innerElementIsActive, o = e.handleEvent, a = e.normalizeRange, u = e.rangeIsCollapsed, c = e.rangesAreEqual, e.SelectionManager = function (d) {\n function f(t) {\n this.element = t, this.selectionDidChange = h(this.selectionDidChange, this), this.didMouseDown = h(this.didMouseDown, this), this.locationMapper = new e.LocationMapper(this.element), this.pointMapper = new e.PointMapper(), this.lockCount = 0, o(\"mousedown\", {\n onElement: this.element,\n withCallback: this.didMouseDown\n });\n }\n\n return p(f, d), f.prototype.getLocationRange = function (t) {\n var e, i;\n return null == t && (t = {}), e = t.strict === !1 ? this.createLocationRangeFromDOMRange(n(), {\n strict: !1\n }) : t.ignoreLock ? this.currentLocationRange : null != (i = this.lockedLocationRange) ? i : this.currentLocationRange;\n }, f.prototype.setLocationRange = function (t) {\n var e;\n if (!this.lockedLocationRange) return t = a(t), (e = this.createDOMRangeFromLocationRange(t)) ? (l(e), this.updateCurrentLocationRange(t)) : void 0;\n }, f.prototype.setLocationRangeFromPointRange = function (t) {\n var e, n;\n return t = a(t), n = this.getLocationAtPoint(t[0]), e = this.getLocationAtPoint(t[1]), this.setLocationRange([n, e]);\n }, f.prototype.getClientRectAtLocationRange = function (t) {\n var e;\n return (e = this.createDOMRangeFromLocationRange(t)) ? this.getClientRectsForDOMRange(e)[1] : void 0;\n }, f.prototype.locationIsCursorTarget = function (t) {\n var e, n, i;\n return i = this.findNodeAndOffsetFromLocation(t), e = i[0], n = i[1], s(e);\n }, f.prototype.lock = function () {\n return 0 === this.lockCount++ ? (this.updateCurrentLocationRange(), this.lockedLocationRange = this.getLocationRange()) : void 0;\n }, f.prototype.unlock = function () {\n var t;\n return 0 === --this.lockCount && (t = this.lockedLocationRange, this.lockedLocationRange = null, null != t) ? this.setLocationRange(t) : void 0;\n }, f.prototype.clearSelection = function () {\n var t;\n return null != (t = i()) ? t.removeAllRanges() : void 0;\n }, f.prototype.selectionIsCollapsed = function () {\n var t;\n return (null != (t = n()) ? t.collapsed : void 0) === !0;\n }, f.prototype.selectionIsExpanded = function () {\n return !this.selectionIsCollapsed();\n }, f.prototype.createLocationRangeFromDOMRange = function (t, e) {\n var n, i;\n if (null != t && this.domRangeWithinElement(t) && (i = this.findLocationFromContainerAndOffset(t.startContainer, t.startOffset, e))) return t.collapsed || (n = this.findLocationFromContainerAndOffset(t.endContainer, t.endOffset, e)), a([i, n]);\n }, f.proxyMethod(\"locationMapper.findLocationFromContainerAndOffset\"), f.proxyMethod(\"locationMapper.findContainerAndOffsetFromLocation\"), f.proxyMethod(\"locationMapper.findNodeAndOffsetFromLocation\"), f.proxyMethod(\"pointMapper.createDOMRangeFromPoint\"), f.proxyMethod(\"pointMapper.getClientRectsForDOMRange\"), f.prototype.didMouseDown = function () {\n return this.pauseTemporarily();\n }, f.prototype.pauseTemporarily = function () {\n var e, n, i, r;\n return this.paused = !0, n = function (e) {\n return function () {\n var n, o, s;\n\n for (e.paused = !1, clearTimeout(r), o = 0, s = i.length; s > o; o++) {\n n = i[o], n.destroy();\n }\n\n return t(document, e.element) ? e.selectionDidChange() : void 0;\n };\n }(this), r = setTimeout(n, 200), i = function () {\n var t, i, r, s;\n\n for (r = [\"mousemove\", \"keydown\"], s = [], t = 0, i = r.length; i > t; t++) {\n e = r[t], s.push(o(e, {\n onElement: document,\n withCallback: n\n }));\n }\n\n return s;\n }();\n }, f.prototype.selectionDidChange = function () {\n return this.paused || r(this.element) ? void 0 : this.updateCurrentLocationRange();\n }, f.prototype.updateCurrentLocationRange = function (t) {\n var e;\n return (null != t ? t : t = this.createLocationRangeFromDOMRange(n())) && !c(t, this.currentLocationRange) ? (this.currentLocationRange = t, null != (e = this.delegate) && \"function\" == typeof e.locationRangeDidChange ? e.locationRangeDidChange(this.currentLocationRange.slice(0)) : void 0) : void 0;\n }, f.prototype.createDOMRangeFromLocationRange = function (t) {\n var e, n, i, o;\n return i = this.findContainerAndOffsetFromLocation(t[0]), n = u(t) ? i : null != (o = this.findContainerAndOffsetFromLocation(t[1])) ? o : i, null != i && null != n ? (e = document.createRange(), e.setStart.apply(e, i), e.setEnd.apply(e, n), e) : void 0;\n }, f.prototype.getLocationAtPoint = function (t) {\n var e, n;\n return (e = this.createDOMRangeFromPoint(t)) && null != (n = this.createLocationRangeFromDOMRange(e)) ? n[0] : void 0;\n }, f.prototype.domRangeWithinElement = function (e) {\n return e.collapsed ? t(this.element, e.startContainer) : t(this.element, e.startContainer) && t(this.element, e.endContainer);\n }, f;\n }(e.BasicObject);\n }.call(this), function () {\n var t,\n n,\n i,\n o,\n r = function r(t, e) {\n function n() {\n this.constructor = t;\n }\n\n for (var i in e) {\n s.call(e, i) && (t[i] = e[i]);\n }\n\n return n.prototype = e.prototype, t.prototype = new n(), t.__super__ = e.prototype, t;\n },\n s = {}.hasOwnProperty,\n a = [].slice;\n\n i = e.rangeIsCollapsed, o = e.rangesAreEqual, n = e.objectsAreEqual, t = e.getBlockConfig, e.EditorController = function (s) {\n function u(t) {\n var n, i;\n this.editorElement = t.editorElement, n = t.document, i = t.html, this.selectionManager = new e.SelectionManager(this.editorElement), this.selectionManager.delegate = this, this.composition = new e.Composition(), this.composition.delegate = this, this.attachmentManager = new e.AttachmentManager(this.composition.getAttachments()), this.attachmentManager.delegate = this, this.inputController = new e[\"Level\" + e.config.input.getLevel() + \"InputController\"](this.editorElement), this.inputController.delegate = this, this.inputController.responder = this.composition, this.compositionController = new e.CompositionController(this.editorElement, this.composition), this.compositionController.delegate = this, this.toolbarController = new e.ToolbarController(this.editorElement.toolbarElement), this.toolbarController.delegate = this, this.editor = new e.Editor(this.composition, this.selectionManager, this.editorElement), null != n ? this.editor.loadDocument(n) : this.editor.loadHTML(i);\n }\n\n var c;\n return r(u, s), u.prototype.registerSelectionManager = function () {\n return e.selectionChangeObserver.registerSelectionManager(this.selectionManager);\n }, u.prototype.unregisterSelectionManager = function () {\n return e.selectionChangeObserver.unregisterSelectionManager(this.selectionManager);\n }, u.prototype.render = function () {\n return this.compositionController.render();\n }, u.prototype.reparse = function () {\n return this.composition.replaceHTML(this.editorElement.innerHTML);\n }, u.prototype.compositionDidChangeDocument = function () {\n return this.notifyEditorElement(\"document-change\"), this.handlingInput ? void 0 : this.render();\n }, u.prototype.compositionDidChangeCurrentAttributes = function (t) {\n return this.currentAttributes = t, this.toolbarController.updateAttributes(this.currentAttributes), this.updateCurrentActions(), this.notifyEditorElement(\"attributes-change\", {\n attributes: this.currentAttributes\n });\n }, u.prototype.compositionDidPerformInsertionAtRange = function (t) {\n return this.pasting ? this.pastedRange = t : void 0;\n }, u.prototype.compositionShouldAcceptFile = function (t) {\n return this.notifyEditorElement(\"file-accept\", {\n file: t\n });\n }, u.prototype.compositionDidAddAttachment = function (t) {\n var e;\n return e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-add\", {\n attachment: e\n });\n }, u.prototype.compositionDidEditAttachment = function (t) {\n var e;\n return this.compositionController.rerenderViewForObject(t), e = this.attachmentManager.manageAttachment(t), this.notifyEditorElement(\"attachment-edit\", {\n attachment: e\n }), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidChangeAttachmentPreviewURL = function (t) {\n return this.compositionController.invalidateViewForObject(t), this.notifyEditorElement(\"change\");\n }, u.prototype.compositionDidRemoveAttachment = function (t) {\n var e;\n return e = this.attachmentManager.unmanageAttachment(t), this.notifyEditorElement(\"attachment-remove\", {\n attachment: e\n });\n }, u.prototype.compositionDidStartEditingAttachment = function (t, e) {\n return this.attachmentLocationRange = this.composition.document.getLocationRangeOfAttachment(t), this.compositionController.installAttachmentEditorForAttachment(t, e), this.selectionManager.setLocationRange(this.attachmentLocationRange);\n }, u.prototype.compositionDidStopEditingAttachment = function () {\n return this.compositionController.uninstallAttachmentEditor(), this.attachmentLocationRange = null;\n }, u.prototype.compositionDidRequestChangingSelectionToLocationRange = function (t) {\n return !this.loadingSnapshot || this.isFocused() ? (this.requestedLocationRange = t, this.compositionRevisionWhenLocationRangeRequested = this.composition.revision, this.handlingInput ? void 0 : this.render()) : void 0;\n }, u.prototype.compositionWillLoadSnapshot = function () {\n return this.loadingSnapshot = !0;\n }, u.prototype.compositionDidLoadSnapshot = function () {\n return this.compositionController.refreshViewCache(), this.render(), this.loadingSnapshot = !1;\n }, u.prototype.getSelectionManager = function () {\n return this.selectionManager;\n }, u.proxyMethod(\"getSelectionManager().setLocationRange\"), u.proxyMethod(\"getSelectionManager().getLocationRange\"), u.prototype.attachmentManagerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.compositionControllerWillSyncDocumentView = function () {\n return this.inputController.editorWillSyncDocumentView(), this.selectionManager.lock(), this.selectionManager.clearSelection();\n }, u.prototype.compositionControllerDidSyncDocumentView = function () {\n return this.inputController.editorDidSyncDocumentView(), this.selectionManager.unlock(), this.updateCurrentActions(), this.notifyEditorElement(\"sync\");\n }, u.prototype.compositionControllerDidRender = function () {\n return null != this.requestedLocationRange && (this.compositionRevisionWhenLocationRangeRequested === this.composition.revision && this.selectionManager.setLocationRange(this.requestedLocationRange), this.requestedLocationRange = null, this.compositionRevisionWhenLocationRangeRequested = null), this.renderedCompositionRevision !== this.composition.revision && (this.runEditorFilters(), this.composition.updateCurrentAttributes(), this.notifyEditorElement(\"render\")), this.renderedCompositionRevision = this.composition.revision;\n }, u.prototype.compositionControllerDidFocus = function () {\n return this.toolbarController.hideDialog(), this.notifyEditorElement(\"focus\");\n }, u.prototype.compositionControllerDidBlur = function () {\n return this.notifyEditorElement(\"blur\");\n }, u.prototype.compositionControllerDidSelectAttachment = function (t, e) {\n return this.toolbarController.hideDialog(), this.composition.editAttachment(t, e);\n }, u.prototype.compositionControllerDidRequestDeselectingAttachment = function (t) {\n var e, n;\n return e = null != (n = this.attachmentLocationRange) ? n : this.composition.document.getLocationRangeOfAttachment(t), this.selectionManager.setLocationRange(e[1]);\n }, u.prototype.compositionControllerWillUpdateAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Edit Attachment\", {\n context: t.id,\n consolidatable: !0\n });\n }, u.prototype.compositionControllerDidRequestRemovalOfAttachment = function (t) {\n return this.removeAttachment(t);\n }, u.prototype.inputControllerWillHandleInput = function () {\n return this.handlingInput = !0, this.requestedRender = !1;\n }, u.prototype.inputControllerDidRequestRender = function () {\n return this.requestedRender = !0;\n }, u.prototype.inputControllerDidHandleInput = function () {\n return this.handlingInput = !1, this.requestedRender ? (this.requestedRender = !1, this.render()) : void 0;\n }, u.prototype.inputControllerDidAllowUnhandledInput = function () {\n return this.notifyEditorElement(\"change\");\n }, u.prototype.inputControllerDidRequestReparse = function () {\n return this.reparse();\n }, u.prototype.inputControllerWillPerformTyping = function () {\n return this.recordTypingUndoEntry();\n }, u.prototype.inputControllerWillPerformFormatting = function (t) {\n return this.recordFormattingUndoEntry(t);\n }, u.prototype.inputControllerWillCutText = function () {\n return this.editor.recordUndoEntry(\"Cut\");\n }, u.prototype.inputControllerWillPaste = function (t) {\n return this.editor.recordUndoEntry(\"Paste\"), this.pasting = !0, this.notifyEditorElement(\"before-paste\", {\n paste: t\n });\n }, u.prototype.inputControllerDidPaste = function (t) {\n return t.range = this.pastedRange, this.pastedRange = null, this.pasting = null, this.notifyEditorElement(\"paste\", {\n paste: t\n });\n }, u.prototype.inputControllerWillMoveText = function () {\n return this.editor.recordUndoEntry(\"Move\");\n }, u.prototype.inputControllerWillAttachFiles = function () {\n return this.editor.recordUndoEntry(\"Drop Files\");\n }, u.prototype.inputControllerWillPerformUndo = function () {\n return this.editor.undo();\n }, u.prototype.inputControllerWillPerformRedo = function () {\n return this.editor.redo();\n }, u.prototype.inputControllerDidReceiveKeyboardCommand = function (t) {\n return this.toolbarController.applyKeyboardCommand(t);\n }, u.prototype.inputControllerDidStartDrag = function () {\n return this.locationRangeBeforeDrag = this.selectionManager.getLocationRange();\n }, u.prototype.inputControllerDidReceiveDragOverPoint = function (t) {\n return this.selectionManager.setLocationRangeFromPointRange(t);\n }, u.prototype.inputControllerDidCancelDrag = function () {\n return this.selectionManager.setLocationRange(this.locationRangeBeforeDrag), this.locationRangeBeforeDrag = null;\n }, u.prototype.locationRangeDidChange = function (t) {\n return this.composition.updateCurrentAttributes(), this.updateCurrentActions(), this.attachmentLocationRange && !o(this.attachmentLocationRange, t) && this.composition.stopEditingAttachment(), this.notifyEditorElement(\"selection-change\");\n }, u.prototype.toolbarDidClickButton = function () {\n return this.getLocationRange() ? void 0 : this.setLocationRange({\n index: 0,\n offset: 0\n });\n }, u.prototype.toolbarDidInvokeAction = function (t) {\n return this.invokeAction(t);\n }, u.prototype.toolbarDidToggleAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.toggleCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidUpdateAttribute = function (t, e) {\n return this.recordFormattingUndoEntry(t), this.composition.setCurrentAttribute(t, e), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarDidRemoveAttribute = function (t) {\n return this.recordFormattingUndoEntry(t), this.composition.removeCurrentAttribute(t), this.render(), this.selectionFrozen ? void 0 : this.editorElement.focus();\n }, u.prototype.toolbarWillShowDialog = function () {\n return this.composition.expandSelectionForEditing(), this.freezeSelection();\n }, u.prototype.toolbarDidShowDialog = function (t) {\n return this.notifyEditorElement(\"toolbar-dialog-show\", {\n dialogName: t\n });\n }, u.prototype.toolbarDidHideDialog = function (t) {\n return this.thawSelection(), this.editorElement.focus(), this.notifyEditorElement(\"toolbar-dialog-hide\", {\n dialogName: t\n });\n }, u.prototype.freezeSelection = function () {\n return this.selectionFrozen ? void 0 : (this.selectionManager.lock(), this.composition.freezeSelection(), this.selectionFrozen = !0, this.render());\n }, u.prototype.thawSelection = function () {\n return this.selectionFrozen ? (this.composition.thawSelection(), this.selectionManager.unlock(), this.selectionFrozen = !1, this.render()) : void 0;\n }, u.prototype.actions = {\n undo: {\n test: function test() {\n return this.editor.canUndo();\n },\n perform: function perform() {\n return this.editor.undo();\n }\n },\n redo: {\n test: function test() {\n return this.editor.canRedo();\n },\n perform: function perform() {\n return this.editor.redo();\n }\n },\n link: {\n test: function test() {\n return this.editor.canActivateAttribute(\"href\");\n }\n },\n increaseNestingLevel: {\n test: function test() {\n return this.editor.canIncreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.increaseNestingLevel() && this.render();\n }\n },\n decreaseNestingLevel: {\n test: function test() {\n return this.editor.canDecreaseNestingLevel();\n },\n perform: function perform() {\n return this.editor.decreaseNestingLevel() && this.render();\n }\n },\n attachFiles: {\n test: function test() {\n return !0;\n },\n perform: function perform() {\n return e.config.input.pickFiles(this.editor.insertFiles);\n }\n }\n }, u.prototype.canInvokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? !0 : !!(null != (e = this.actions[t]) && null != (n = e.test) ? n.call(this) : void 0);\n }, u.prototype.invokeAction = function (t) {\n var e, n;\n return this.actionIsExternal(t) ? this.notifyEditorElement(\"action-invoke\", {\n actionName: t\n }) : null != (e = this.actions[t]) && null != (n = e.perform) ? n.call(this) : void 0;\n }, u.prototype.actionIsExternal = function (t) {\n return /^x-./.test(t);\n }, u.prototype.getCurrentActions = function () {\n var t, e;\n e = {};\n\n for (t in this.actions) {\n e[t] = this.canInvokeAction(t);\n }\n\n return e;\n }, u.prototype.updateCurrentActions = function () {\n var t;\n return t = this.getCurrentActions(), n(t, this.currentActions) ? void 0 : (this.currentActions = t, this.toolbarController.updateActions(this.currentActions), this.notifyEditorElement(\"actions-change\", {\n actions: this.currentActions\n }));\n }, u.prototype.runEditorFilters = function () {\n var t, e, n, i, o, r, s, a;\n\n for (a = this.composition.getSnapshot(), o = this.editor.filters, n = 0, i = o.length; i > n; n++) {\n e = o[n], t = a.document, s = a.selectedRange, a = null != (r = e.call(this.editor, a)) ? r : {}, null == a.document && (a.document = t), null == a.selectedRange && (a.selectedRange = s);\n }\n\n return c(a, this.composition.getSnapshot()) ? void 0 : this.composition.loadSnapshot(a);\n }, c = function c(t, e) {\n return o(t.selectedRange, e.selectedRange) && t.document.isEqualTo(e.document);\n }, u.prototype.updateInputElement = function () {\n var t, n;\n return t = this.compositionController.getSerializableElement(), n = e.serializeToContentType(t, \"text/html\"), this.editorElement.setInputElementValue(n);\n }, u.prototype.notifyEditorElement = function (t, e) {\n switch (t) {\n case \"document-change\":\n this.documentChangedSinceLastRender = !0;\n break;\n\n case \"render\":\n this.documentChangedSinceLastRender && (this.documentChangedSinceLastRender = !1, this.notifyEditorElement(\"change\"));\n break;\n\n case \"change\":\n case \"attachment-add\":\n case \"attachment-edit\":\n case \"attachment-remove\":\n this.updateInputElement();\n }\n\n return this.editorElement.notify(t, e);\n }, u.prototype.removeAttachment = function (t) {\n return this.editor.recordUndoEntry(\"Delete Attachment\"), this.composition.removeAttachment(t), this.render();\n }, u.prototype.recordFormattingUndoEntry = function (e) {\n var n, o;\n return n = t(e), o = this.selectionManager.getLocationRange(), n || !i(o) ? this.editor.recordUndoEntry(\"Formatting\", {\n context: this.getUndoContext(),\n consolidatable: !0\n }) : void 0;\n }, u.prototype.recordTypingUndoEntry = function () {\n return this.editor.recordUndoEntry(\"Typing\", {\n context: this.getUndoContext(this.currentAttributes),\n consolidatable: !0\n });\n }, u.prototype.getUndoContext = function () {\n var t;\n return t = 1 <= arguments.length ? a.call(arguments, 0) : [], [this.getLocationContext(), this.getTimeContext()].concat(a.call(t));\n }, u.prototype.getLocationContext = function () {\n var t;\n return t = this.selectionManager.getLocationRange(), i(t) ? t[0].index : t;\n }, u.prototype.getTimeContext = function () {\n return e.config.undoInterval > 0 ? Math.floor(new Date().getTime() / e.config.undoInterval) : 0;\n }, u.prototype.isFocused = function () {\n var t;\n return this.editorElement === (null != (t = this.editorElement.ownerDocument) ? t.activeElement : void 0);\n }, u;\n }(e.Controller);\n }.call(this), function () {\n var t, n, i, o, r, s;\n n = e.browser, r = e.makeElement, s = e.triggerEvent, i = e.handleEvent, o = e.handleEventOnce, t = e.AttachmentView.attachmentSelector, e.registerElement(\"trix-editor\", function () {\n var a, u, c, l, h, p, d, f;\n return p = 0, u = function u(t) {\n return !document.querySelector(\":focus\") && t.hasAttribute(\"autofocus\") && document.querySelector(\"[autofocus]\") === t ? t.focus() : void 0;\n }, d = function d(t) {\n return t.hasAttribute(\"contenteditable\") ? void 0 : (t.setAttribute(\"contenteditable\", \"\"), o(\"focus\", {\n onElement: t,\n withCallback: function withCallback() {\n return c(t);\n }\n }));\n }, a = function a(t) {\n return t.hasAttribute(\"role\") ? void 0 : t.setAttribute(\"role\", \"textbox\");\n }, c = function c(t) {\n return h(t), f(t);\n }, h = function h(t) {\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"enableObjectResizing\") : void 0) ? (document.execCommand(\"enableObjectResizing\", !1, !1), i(\"mscontrolselect\", {\n onElement: t,\n preventDefault: !0\n })) : void 0;\n }, f = function f() {\n var t;\n return (\"function\" == typeof document.queryCommandSupported ? document.queryCommandSupported(\"DefaultParagraphSeparator\") : void 0) && (t = e.config.blockAttributes[\"default\"].tagName, \"div\" === t || \"p\" === t) ? document.execCommand(\"DefaultParagraphSeparator\", !1, t) : void 0;\n }, l = function () {\n return n.forcesObjectResizing ? {\n display: \"inline\",\n width: \"auto\"\n } : {\n display: \"inline-block\",\n width: \"1px\"\n };\n }(), {\n defaultCSS: \"%t {\\n display: block;\\n}\\n\\n%t:empty:not(:focus)::before {\\n content: attr(placeholder);\\n color: graytext;\\n cursor: text;\\n}\\n\\n%t a[contenteditable=false] {\\n cursor: text;\\n}\\n\\n%t img {\\n max-width: 100%;\\n height: auto;\\n}\\n\\n%t \" + t + \" figcaption textarea {\\n resize: none;\\n}\\n\\n%t \" + t + \" figcaption textarea.trix-autoresize-clone {\\n position: absolute;\\n left: -9999px;\\n max-height: 0px;\\n}\\n\\n%t \" + t + \" figcaption[data-trix-placeholder]:empty::before {\\n content: attr(data-trix-placeholder);\\n color: graytext;\\n}\\n\\n%t [data-trix-cursor-target] {\\n display: \" + l.display + \" !important;\\n width: \" + l.width + \" !important;\\n padding: 0 !important;\\n margin: 0 !important;\\n border: none !important;\\n}\\n\\n%t [data-trix-cursor-target=left] {\\n vertical-align: top !important;\\n margin-left: -1px !important;\\n}\\n\\n%t [data-trix-cursor-target=right] {\\n vertical-align: bottom !important;\\n margin-right: -1px !important;\\n}\",\n trixId: {\n get: function get() {\n return this.hasAttribute(\"trix-id\") ? this.getAttribute(\"trix-id\") : (this.setAttribute(\"trix-id\", ++p), this.trixId);\n }\n },\n toolbarElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"toolbar\") ? null != (e = this.ownerDocument) ? e.getElementById(this.getAttribute(\"toolbar\")) : void 0 : this.parentNode ? (n = \"trix-toolbar-\" + this.trixId, this.setAttribute(\"toolbar\", n), t = r(\"trix-toolbar\", {\n id: n\n }), this.parentNode.insertBefore(t, this), t) : void 0;\n }\n },\n inputElement: {\n get: function get() {\n var t, e, n;\n return this.hasAttribute(\"input\") ? null != (n = this.ownerDocument) ? n.getElementById(this.getAttribute(\"input\")) : void 0 : this.parentNode ? (e = \"trix-input-\" + this.trixId, this.setAttribute(\"input\", e), t = r(\"input\", {\n type: \"hidden\",\n id: e\n }), this.parentNode.insertBefore(t, this.nextElementSibling), t) : void 0;\n }\n },\n editor: {\n get: function get() {\n var t;\n return null != (t = this.editorController) ? t.editor : void 0;\n }\n },\n name: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.name : void 0;\n }\n },\n value: {\n get: function get() {\n var t;\n return null != (t = this.inputElement) ? t.value : void 0;\n },\n set: function set(t) {\n var e;\n return this.defaultValue = t, null != (e = this.editor) ? e.loadHTML(this.defaultValue) : void 0;\n }\n },\n notify: function notify(t, e) {\n return this.editorController ? s(\"trix-\" + t, {\n onElement: this,\n attributes: e\n }) : void 0;\n },\n setInputElementValue: function setInputElementValue(t) {\n var e;\n return null != (e = this.inputElement) ? e.value = t : void 0;\n },\n initialize: function initialize() {\n return d(this), a(this);\n },\n connect: function connect() {\n return this.hasAttribute(\"data-trix-internal\") ? void 0 : (this.editorController || (s(\"trix-before-initialize\", {\n onElement: this\n }), this.editorController = new e.EditorController({\n editorElement: this,\n html: this.defaultValue = this.value\n }), requestAnimationFrame(function (t) {\n return function () {\n return s(\"trix-initialize\", {\n onElement: t\n });\n };\n }(this))), this.editorController.registerSelectionManager(), this.registerResetListener(), u(this));\n },\n disconnect: function disconnect() {\n var t;\n return null != (t = this.editorController) && t.unregisterSelectionManager(), this.unregisterResetListener();\n },\n registerResetListener: function registerResetListener() {\n return this.resetListener = this.resetBubbled.bind(this), window.addEventListener(\"reset\", this.resetListener, !1);\n },\n unregisterResetListener: function unregisterResetListener() {\n return window.removeEventListener(\"reset\", this.resetListener, !1);\n },\n resetBubbled: function resetBubbled(t) {\n var e;\n return t.target !== (null != (e = this.inputElement) ? e.form : void 0) || t.defaultPrevented ? void 0 : this.reset();\n },\n reset: function reset() {\n return this.value = this.defaultValue;\n }\n };\n }());\n }.call(this), function () {}.call(this);\n }).call(this), \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) && module.exports ? module.exports = e : \"function\" == typeof define && define.amd && define(e);\n}.call(this);","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a