PageSourceSearch

https://tasz.hu/wp-content/plugins/pxr-utilities/assets/js/vendor/moment-with-locales.js?ver=1.1.11788198343

js tasz.hu collected 2026-09-25 18:26:34 UTC 622,012 bytes, 18,237 lines download raw bytes

vendor: 5,457 bytes, lines 1-201
1;(function (global, factory) {
2    typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3    typeof define === 'function' && define.amd ? define(factory) :
4    global.moment = factory()
5}(this, (function () { 'use strict';
6
7    var hookCallback;
8
9    function hooks() {
10        return hookCallback.apply(null, arguments);
11    }
12
13    // This is done to register the method called with moment()
14    // without creating circular dependencies.
15    function setHookCallback(callback) {
16        hookCallback = callback;
17    }
18
19    function isArray(input) {
20        return (
21            input instanceof Array ||
22            Object.prototype.toString.call(input) === '[object Array]'
23        );
24    }
25
26    function isObject(input) {
27        // IE8 will treat undefined and null as object if it wasn't for
28        // input != null
29        return (
30            input != null &&
31            Object.prototype.toString.call(input) === '[object Object]'
32        );
33    }
34
35    function hasOwnProp(a, b) {
36        return Object.prototype.hasOwnProperty.call(a, b);
37    }
38
39    function isObjectEmpty(obj) {
40        if (Object.getOwnPropertyNames) {
41            return Object.getOwnPropertyNames(obj).length === 0;
42        } else {
43            var k;
44            for (k in obj) {
45                if (hasOwnProp(obj, k)) {
46                    return false;
47                }
48            }
49            return true;
50        }
51    }
52
53    function isUndefined(input) {
54        return input === void 0;
55    }
56
57    function isNumber(input) {
58        return (
59            typeof input === 'number' ||
60            Object.prototype.toString.call(input) === '[object Number]'
61        );
62    }
63
64    function isDate(input) {
65        return (
66            input instanceof Date ||
67            Object.prototype.toString.call(input) === '[object Date]'
68        );
69    }
70
71    function map(arr, fn) {
72        var res = [],
73            i,
74            arrLen = arr.length;
75        for (i = 0; i < arrLen; ++i) {
76            res.push(fn(arr[i], i));
77        }
78        return res;
79    }
80
81    function extend(a, b) {
82        for (var i in b) {
83            if (hasOwnProp(b, i)) {
84                a[i] = b[i];
85            }
86        }
87
88        if (hasOwnProp(b, 'toString')) {
89            a.toString = b.toString;
90        }
91
92        if (hasOwnProp(b, 'valueOf')) {
93            a.valueOf = b.valueOf;
94        }
95
96        return a;
97    }
98
99    function createUTC(input, format, locale, strict) {
100        return createLocalOrUTC(input, format, locale, strict, true).utc();
101    }
102
103    function defaultParsingFlags() {
104        // We need to deep clone this object.
105        return {
106            empty: false,
107            unusedTokens: [],
108            unusedInput: [],
109            overflow: -2,
110            charsLeftOver: 0,
111            nullInput: false,
112            invalidEra: null,
113            invalidMonth: null,
114            invalidFormat: false,
115            userInvalidated: false,
116            iso: false,
117            parsedDateParts: [],
118            era: null,
119            meridiem: null,
120            rfc2822: false,
121            weekdayMismatch: false,
122        };
123    }
124
125    function getParsingFlags(m) {
126        if (m._pf == null) {
127            m._pf = defaultParsingFlags();
128        }
129        return m._pf;
130    }
131
132    var some;
133    if (Array.prototype.some) {
134        some = Array.prototype.some;
135    } else {
136        some = function (fun) {
137            var t = Object(this),
138                len = t.length >>> 0,
139                i;
140
141            for (i = 0; i < len; i++) {
142                if (i in t && fun.call(this, t[i], i, t)) {
143                    return true;
144                }
145            }
146
147            return false;
148        };
149    }
150
151    function isValid(m) {
152        if (m._isValid == null) {
153            var flags = getParsingFlags(m),
154                parsedParts = some.call(flags.parsedDateParts, function (i) {
155                    return i != null;
156                }),
157                isNowValid =
158                    !isNaN(m._d.getTime()) &&
159                    flags.overflow < 0 &&
160                    !flags.empty &&
161                    !flags.invalidEra &&
162                    !flags.invalidMonth &&
163                    !flags.invalidWeekday &&
164                    !flags.weekdayMismatch &&
165                    !flags.nullInput &&
166                    !flags.invalidFormat &&
167                    !flags.userInvalidated &&
168                    (!flags.meridiem || (flags.meridiem && parsedParts));
169
170            if (m._strict) {
171                isNowValid =
172                    isNowValid &&
173                    flags.charsLeftOver === 0 &&
174                    flags.unusedTokens.length === 0 &&
175                    flags.bigHour === undefined;
176            }
177
178            if (Object.isFrozen == null || !Object.isFrozen(m)) {
179                m._isValid = isNowValid;
180            } else {
181                return isNowValid;
182            }
183        }
184        return m._isValid;
185    }
186
187    function createInvalid(flags) {
188        var m = createUTC(NaN);
189        if (flags != null) {
190            extend(getParsingFlags(m), flags);
191        } else {
192            getParsingFlags(m).userInvalidated = true;
193        }
194
195        return m;
196    }
197
198    // Plugins that add properties should also add the key here (null value),
199    // so we can properly clone ourselves.
200    var momentProperties = (hooks.momentProperties = []),
201        updateInProgress = false;
vendor: 7,422 bytes, lines 202-449
202
203    function copyConfig(to, from) {
204        var i,
205            prop,
206            val,
207            momentPropertiesLen = momentProperties.length;
208
209        if (!isUndefined(from._isAMomentObject)) {
210            to._isAMomentObject = from._isAMomentObject;
211        }
212        if (!isUndefined(from._i)) {
213            to._i = from._i;
214        }
215        if (!isUndefined(from._f)) {
216            to._f = from._f;
217        }
218        if (!isUndefined(from._l)) {
219            to._l = from._l;
220        }
221        if (!isUndefined(from._strict)) {
222            to._strict = from._strict;
223        }
224        if (!isUndefined(from._tzm)) {
225            to._tzm = from._tzm;
226        }
227        if (!isUndefined(from._isUTC)) {
228            to._isUTC = from._isUTC;
229        }
230        if (!isUndefined(from._offset)) {
231            to._offset = from._offset;
232        }
233        if (!isUndefined(from._pf)) {
234            to._pf = getParsingFlags(from);
235        }
236        if (!isUndefined(from._locale)) {
237            to._locale = from._locale;
238        }
239
240        if (momentPropertiesLen > 0) {
241            for (i = 0; i < momentPropertiesLen; i++) {
242                prop = momentProperties[i];
243                val = from[prop];
244                if (!isUndefined(val)) {
245                    to[prop] = val;
246                }
247            }
248        }
249
250        return to;
251    }
252
253    // Moment prototype object
254    function Moment(config) {
255        copyConfig(this, config);
256        this._d = new Date(config._d != null ? config._d.getTime() : NaN);
257        if (!this.isValid()) {
258            this._d = new Date(NaN);
259        }
260        // Prevent infinite loop in case updateOffset creates new moment
261        // objects.
262        if (updateInProgress === false) {
263            updateInProgress = true;
264            hooks.updateOffset(this);
265            updateInProgress = false;
266        }
267    }
268
269    function isMoment(obj) {
270        return (
271            obj instanceof Moment || (obj != null && obj._isAMomentObject != null)
272        );
273    }
274
275    function warn(msg) {
276        if (
277            hooks.suppressDeprecationWarnings === false &&
278            typeof console !== 'undefined' &&
279            console.warn
280        ) {
281            console.warn('Deprecation warning: ' + msg);
282        }
283    }
284
285    function deprecate(msg, fn) {
286        var firstTime = true;
287
288        return extend(function () {
289            if (hooks.deprecationHandler != null) {
290                hooks.deprecationHandler(null, msg);
291            }
292            if (firstTime) {
293                var args = [],
294                    arg,
295                    i,
296                    key,
297                    argLen = arguments.length;
298                for (i = 0; i < argLen; i++) {
299                    arg = '';
300                    if (typeof arguments[i] === 'object') {
301                        arg += '\n[' + i + '] ';
302                        for (key in arguments[0]) {
303                            if (hasOwnProp(arguments[0], key)) {
304                                arg += key + ': ' + arguments[0][key] + ', ';
305                            }
306                        }
307                        arg = arg.slice(0, -2); // Remove trailing comma and space
308                    } else {
309                        arg = arguments[i];
310                    }
311                    args.push(arg);
312                }
313                warn(
314                    msg +
315                        '\nArguments: ' +
316                        Array.prototype.slice.call(args).join('') +
317                        '\n' +
318                        new Error().stack
319                );
320                firstTime = false;
321            }
322            return fn.apply(this, arguments);
323        }, fn);
324    }
325
326    var deprecations = {};
327
328    function deprecateSimple(name, msg) {
329        if (hooks.deprecationHandler != null) {
330            hooks.deprecationHandler(name, msg);
331        }
332        if (!deprecations[name]) {
333            warn(msg);
334            deprecations[name] = true;
335        }
336    }
337
338    hooks.suppressDeprecationWarnings = false;
339    hooks.deprecationHandler = null;
340
341    function isFunction(input) {
342        return (
343            (typeof Function !== 'undefined' && input instanceof Function) ||
344            Object.prototype.toString.call(input) === '[object Function]'
345        );
346    }
347
348    function set(config) {
349        var prop, i;
350        for (i in config) {
351            if (hasOwnProp(config, i)) {
352                prop = config[i];
353                if (isFunction(prop)) {
354                    this[i] = prop;
355                } else {
356                    this['_' + i] = prop;
357                }
358            }
359        }
360        this._config = config;
361        // Lenient ordinal parsing accepts just a number in addition to
362        // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
363        // TODO: Remove "ordinalParse" fallback in next major release.
364        this._dayOfMonthOrdinalParseLenient = new RegExp(
365            (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
366                '|' +
367                /\d{1,2}/.source
368        );
369    }
370
371    function mergeConfigs(parentConfig, childConfig) {
372        var res = extend({}, parentConfig),
373            prop;
374        for (prop in childConfig) {
375            if (hasOwnProp(childConfig, prop)) {
376                if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
377                    res[prop] = {};
378                    extend(res[prop], parentConfig[prop]);
379                    extend(res[prop], childConfig[prop]);
380                } else if (childConfig[prop] != null) {
381                    res[prop] = childConfig[prop];
382                } else {
383                    delete res[prop];
384                }
385            }
386        }
387        for (prop in parentConfig) {
388            if (
389                hasOwnProp(parentConfig, prop) &&
390                !hasOwnProp(childConfig, prop) &&
391                isObject(parentConfig[prop])
392            ) {
393                // make sure changes to properties don't modify parent config
394                res[prop] = extend({}, res[prop]);
395            }
396        }
397        return res;
398    }
399
400    function Locale(config) {
401        if (config != null) {
402            this.set(config);
403        }
404    }
405
406    var keys;
407
408    if (Object.keys) {
409        keys = Object.keys;
410    } else {
411        keys = function (obj) {
412            var i,
413                res = [];
414            for (i in obj) {
415                if (hasOwnProp(obj, i)) {
416                    res.push(i);
417                }
418            }
419            return res;
420        };
421    }
422
423    var defaultCalendar = {
424        sameDay: '[Today at] LT',
425        nextDay: '[Tomorrow at] LT',
426        nextWeek: 'dddd [at] LT',
427        lastDay: '[Yesterday at] LT',
428        lastWeek: '[Last] dddd [at] LT',
429        sameElse: 'L',
430    };
431
432    function calendar(key, mom, now) {
433        var output = this._calendar[key] || this._calendar['sameElse'];
434        return isFunction(output) ? output.call(mom, now) : output;
435    }
436
437    function zeroFill(number, targetLength, forceSign) {
438        var absNumber = '' + Math.abs(number),
439            zerosToFill = targetLength - absNumber.length,
440            sign = number >= 0;
441        return (
442            (sign ? (forceSign ? '+' : '') : '-') +
443            Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +
444            absNumber
445        );
446    }
447
448    var formattingTokens =
449           
vendor: 8,563 bytes, lines 449-753
449 /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
450        localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
451        formatFunctions = {},
452        formatTokenFunctions = {};
453
454    // token:    'M'
455    // padded:   ['MM', 2]
456    // ordinal:  'Mo'
457    // callback: function () { this.month() + 1 }
458    function addFormatToken(token, padded, ordinal, callback) {
459        var func = callback;
460        if (typeof callback === 'string') {
461            func = function () {
462                return this[callback]();
463            };
464        }
465        if (token) {
466            formatTokenFunctions[token] = func;
467        }
468        if (padded) {
469            formatTokenFunctions[padded[0]] = function () {
470                return zeroFill(func.apply(this, arguments), padded[1], padded[2]);
471            };
472        }
473        if (ordinal) {
474            formatTokenFunctions[ordinal] = function () {
475                return this.localeData().ordinal(
476                    func.apply(this, arguments),
477                    token
478                );
479            };
480        }
481    }
482
483    function removeFormattingTokens(input) {
484        if (input.match(/\[[\s\S]/)) {
485            return input.replace(/^\[|\]$/g, '');
486        }
487        return input.replace(/\\/g, '');
488    }
489
490    function makeFormatFunction(format) {
491        var array = format.match(formattingTokens),
492            i,
493            length;
494
495        for (i = 0, length = array.length; i < length; i++) {
496            if (formatTokenFunctions[array[i]]) {
497                array[i] = formatTokenFunctions[array[i]];
498            } else {
499                array[i] = removeFormattingTokens(array[i]);
500            }
501        }
502
503        return function (mom) {
504            var output = '',
505                i;
506            for (i = 0; i < length; i++) {
507                output += isFunction(array[i])
508                    ? array[i].call(mom, format)
509                    : array[i];
510            }
511            return output;
512        };
513    }
514
515    // format date using native date object
516    function formatMoment(m, format) {
517        if (!m.isValid()) {
518            return m.localeData().invalidDate();
519        }
520
521        format = expandFormat(format, m.localeData());
522        formatFunctions[format] =
523            formatFunctions[format] || makeFormatFunction(format);
524
525        return formatFunctions[format](m);
526    }
527
528    function expandFormat(format, locale) {
529        var i = 5;
530
531        function replaceLongDateFormatTokens(input) {
532            return locale.longDateFormat(input) || input;
533        }
534
535        localFormattingTokens.lastIndex = 0;
536        while (i >= 0 && localFormattingTokens.test(format)) {
537            format = format.replace(
538                localFormattingTokens,
539                replaceLongDateFormatTokens
540            );
541            localFormattingTokens.lastIndex = 0;
542            i -= 1;
543        }
544
545        return format;
546    }
547
548    var defaultLongDateFormat = {
549        LTS: 'h:mm:ss A',
550        LT: 'h:mm A',
551        L: 'MM/DD/YYYY',
552        LL: 'MMMM D, YYYY',
553        LLL: 'MMMM D, YYYY h:mm A',
554        LLLL: 'dddd, MMMM D, YYYY h:mm A',
555    };
556
557    function longDateFormat(key) {
558        var format = this._longDateFormat[key],
559            formatUpper = this._longDateFormat[key.toUpperCase()];
560
561        if (format || !formatUpper) {
562            return format;
563        }
564
565        this._longDateFormat[key] = formatUpper
566            .match(formattingTokens)
567            .map(function (tok) {
568                if (
569                    tok === 'MMMM' ||
570                    tok === 'MM' ||
571                    tok === 'DD' ||
572                    tok === 'dddd'
573                ) {
574                    return tok.slice(1);
575                }
576                return tok;
577            })
578            .join('');
579
580        return this._longDateFormat[key];
581    }
582
583    var defaultInvalidDate = 'Invalid date';
584
585    function invalidDate() {
586        return this._invalidDate;
587    }
588
589    var defaultOrdinal = '%d',
590        defaultDayOfMonthOrdinalParse = /\d{1,2}/;
591
592    function ordinal(number) {
593        return this._ordinal.replace('%d', number);
594    }
595
596    var defaultRelativeTime = {
597        future: 'in %s',
598        past: '%s ago',
599        s: 'a few seconds',
600        ss: '%d seconds',
601        m: 'a minute',
602        mm: '%d minutes',
603        h: 'an hour',
604        hh: '%d hours',
605        d: 'a day',
606        dd: '%d days',
607        w: 'a week',
608        ww: '%d weeks',
609        M: 'a month',
610        MM: '%d months',
611        y: 'a year',
612        yy: '%d years',
613    };
614
615    function relativeTime(number, withoutSuffix, string, isFuture) {
616        var output = this._relativeTime[string];
617        return isFunction(output)
618            ? output(number, withoutSuffix, string, isFuture)
619            : output.replace(/%d/i, number);
620    }
621
622    function pastFuture(diff, output) {
623        var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
624        return isFunction(format) ? format(output) : format.replace(/%s/i, output);
625    }
626
627    var aliases = {};
628
629    function addUnitAlias(unit, shorthand) {
630        var lowerCase = unit.toLowerCase();
631        aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;
632    }
633
634    function normalizeUnits(units) {
635        return typeof units === 'string'
636            ? aliases[units] || aliases[units.toLowerCase()]
637            : undefined;
638    }
639
640    function normalizeObjectUnits(inputObject) {
641        var normalizedInput = {},
642            normalizedProp,
643            prop;
644
645        for (prop in inputObject) {
646            if (hasOwnProp(inputObject, prop)) {
647                normalizedProp = normalizeUnits(prop);
648                if (normalizedProp) {
649                    normalizedInput[normalizedProp] = inputObject[prop];
650                }
651            }
652        }
653
654        return normalizedInput;
655    }
656
657    var priorities = {};
658
659    function addUnitPriority(unit, priority) {
660        priorities[unit] = priority;
661    }
662
663    function getPrioritizedUnits(unitsObj) {
664        var units = [],
665            u;
666        for (u in unitsObj) {
667            if (hasOwnProp(unitsObj, u)) {
668                units.push({ unit: u, priority: priorities[u] });
669            }
670        }
671        units.sort(function (a, b) {
672            return a.priority - b.priority;
673        });
674        return units;
675    }
676
677    function isLeapYear(year) {
678        return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
679    }
680
681    function absFloor(number) {
682        if (number < 0) {
683            // -0 -> 0
684            return Math.ceil(number) || 0;
685        } else {
686            return Math.floor(number);
687        }
688    }
689
690    function toInt(argumentForCoercion) {
691        var coercedNumber = +argumentForCoercion,
692            value = 0;
693
694        if (coercedNumber !== 0 && isFinite(coercedNumber)) {
695            value = absFloor(coercedNumber);
696        }
697
698        return value;
699    }
700
701    function makeGetSet(unit, keepTime) {
702        return function (value) {
703            if (value != null) {
704                set$1(this, unit, value);
705                hooks.updateOffset(this, keepTime);
706                return this;
707            } else {
708                return get(this, unit);
709            }
710        };
711    }
712
713    function get(mom, unit) {
714        return mom.isValid()
715            ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()
716            : NaN;
717    }
718
719    function set$1(mom, unit, value) {
720        if (mom.isValid() && !isNaN(value)) {
721            if (
722                unit === 'FullYear' &&
723                isLeapYear(mom.year()) &&
724                mom.month() === 1 &&
725                mom.date() === 29
726            ) {
727                value = toInt(value);
728                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](
729                    value,
730                    mom.month(),
731                    daysInMonth(value, mom.month())
732                );
733            } else {
734                mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
735            }
736        }
737    }
738
739    // MOMENTS
740
741    function stringGet(units) {
742        units = normalizeUnits(units);
743        if (isFunction(this[units])) {
744            return this[units]();
745        }
746        return this;
747    }
748
749    function stringSet(units, value) {
750        if (typeof units === 'object') {
751            units = normalizeObjectUnits(units);
752            var prioritized = getPrioritizedUnits(units),
753                i
vendor: 5,547 bytes, lines 753-939
753,
754                prioritizedLen = prioritized.length;
755            for (i = 0; i < prioritizedLen; i++) {
756                this[prioritized[i].unit](units[prioritized[i].unit]);
757            }
758        } else {
759            units = normalizeUnits(units);
760            if (isFunction(this[units])) {
761                return this[units](value);
762            }
763        }
764        return this;
765    }
766
767    var match1 = /\d/, //       0 - 9
768        match2 = /\d\d/, //      00 - 99
769        match3 = /\d{3}/, //     000 - 999
770        match4 = /\d{4}/, //    0000 - 9999
771        match6 = /[+-]?\d{6}/, // -999999 - 999999
772        match1to2 = /\d\d?/, //       0 - 99
773        match3to4 = /\d\d\d\d?/, //     999 - 9999
774        match5to6 = /\d\d\d\d\d\d?/, //   99999 - 999999
775        match1to3 = /\d{1,3}/, //       0 - 999
776        match1to4 = /\d{1,4}/, //       0 - 9999
777        match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
778        matchUnsigned = /\d+/, //       0 - inf
779        matchSigned = /[+-]?\d+/, //    -inf - inf
780        matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
781        matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
782        matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
783        // any word (or two) characters or numbers including two/three word month in arabic.
784        // includes scottish gaelic two word and hyphenated months
785        matchWord =
786            /[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,
787        regexes;
788
789    regexes = {};
790
791    function addRegexToken(token, regex, strictRegex) {
792        regexes[token] = isFunction(regex)
793            ? regex
794            : function (isStrict, localeData) {
795                  return isStrict && strictRegex ? strictRegex : regex;
796              };
797    }
798
799    function getParseRegexForToken(token, config) {
800        if (!hasOwnProp(regexes, token)) {
801            return new RegExp(unescapeFormat(token));
802        }
803
804        return regexes[token](config._strict, config._locale);
805    }
806
807    // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
808    function unescapeFormat(s) {
809        return regexEscape(
810            s
811                .replace('\\', '')
812                .replace(
813                    /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
814                    function (matched, p1, p2, p3, p4) {
815                        return p1 || p2 || p3 || p4;
816                    }
817                )
818        );
819    }
820
821    function regexEscape(s) {
822        return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
823    }
824
825    var tokens = {};
826
827    function addParseToken(token, callback) {
828        var i,
829            func = callback,
830            tokenLen;
831        if (typeof token === 'string') {
832            token = [token];
833        }
834        if (isNumber(callback)) {
835            func = function (input, array) {
836                array[callback] = toInt(input);
837            };
838        }
839        tokenLen = token.length;
840        for (i = 0; i < tokenLen; i++) {
841            tokens[token[i]] = func;
842        }
843    }
844
845    function addWeekParseToken(token, callback) {
846        addParseToken(token, function (input, array, config, token) {
847            config._w = config._w || {};
848            callback(input, config._w, config, token);
849        });
850    }
851
852    function addTimeToArrayFromToken(token, input, config) {
853        if (input != null && hasOwnProp(tokens, token)) {
854            tokens[token](input, config._a, config, token);
855        }
856    }
857
858    var YEAR = 0,
859        MONTH = 1,
860        DATE = 2,
861        HOUR = 3,
862        MINUTE = 4,
863        SECOND = 5,
864        MILLISECOND = 6,
865        WEEK = 7,
866        WEEKDAY = 8;
867
868    function mod(n, x) {
869        return ((n % x) + x) % x;
870    }
871
872    var indexOf;
873
874    if (Array.prototype.indexOf) {
875        indexOf = Array.prototype.indexOf;
876    } else {
877        indexOf = function (o) {
878            // I know
879            var i;
880            for (i = 0; i < this.length; ++i) {
881                if (this[i] === o) {
882                    return i;
883                }
884            }
885            return -1;
886        };
887    }
888
889    function daysInMonth(year, month) {
890        if (isNaN(year) || isNaN(month)) {
891            return NaN;
892        }
893        var modMonth = mod(month, 12);
894        year += (month - modMonth) / 12;
895        return modMonth === 1
896            ? isLeapYear(year)
897                ? 29
898                : 28
899            : 31 - ((modMonth % 7) % 2);
900    }
901
902    // FORMATTING
903
904    addFormatToken('M', ['MM', 2], 'Mo', function () {
905        return this.month() + 1;
906    });
907
908    addFormatToken('MMM', 0, 0, function (format) {
909        return this.localeData().monthsShort(this, format);
910    });
911
912    addFormatToken('MMMM', 0, 0, function (format) {
913        return this.localeData().months(this, format);
914    });
915
916    // ALIASES
917
918    addUnitAlias('month', 'M');
919
920    // PRIORITY
921
922    addUnitPriority('month', 8);
923
924    // PARSING
925
926    addRegexToken('M', match1to2);
927    addRegexToken('MM', match1to2, match2);
928    addRegexToken('MMM', function (isStrict, locale) {
929        return locale.monthsShortRegex(isStrict);
930    });
931    addRegexToken('MMMM', function (isStrict, locale) {
932        return locale.monthsRegex(isStrict);
933    });
934
935    addParseToken(['M', 'MM'], function (input, array) {
936        array[MONTH] = toInt(input) - 1;
937    });
938
939    addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
940        var month = config._locale.monthsParse(input, token, config._strict);
941        // if we didn't find a month name, mark the date as invalid.
942        if (month != null) {
943            array[MONTH] = month;
944        } else {
945            getParsingFlags(config).invalidMonth = input;
946        }
947    });
948
949    // LOCALES
950
951    var defaultLocaleMonths =
952            'January_February_March_April_May_June_July_August_September_October_November_December'.split(
953                '_'
954            ),
955        defaultLocaleMonthsShort =
956            'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'
vendor: 13,773 bytes, lines 956-1398
956),
957        MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
958        defaultMonthsShortRegex = matchWord,
959        defaultMonthsRegex = matchWord;
960
961    function localeMonths(m, format) {
962        if (!m) {
963            return isArray(this._months)
964                ? this._months
965                : this._months['standalone'];
966        }
967        return isArray(this._months)
968            ? this._months[m.month()]
969            : this._months[
970                  (this._months.isFormat || MONTHS_IN_FORMAT).test(format)
971                      ? 'format'
972                      : 'standalone'
973              ][m.month()];
974    }
975
976    function localeMonthsShort(m, format) {
977        if (!m) {
978            return isArray(this._monthsShort)
979                ? this._monthsShort
980                : this._monthsShort['standalone'];
981        }
982        return isArray(this._monthsShort)
983            ? this._monthsShort[m.month()]
984            : this._monthsShort[
985                  MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'
986              ][m.month()];
987    }
988
989    function handleStrictParse(monthName, format, strict) {
990        var i,
991            ii,
992            mom,
993            llc = monthName.toLocaleLowerCase();
994        if (!this._monthsParse) {
995            // this is not used
996            this._monthsParse = [];
997            this._longMonthsParse = [];
998            this._shortMonthsParse = [];
999            for (i = 0; i < 12; ++i) {
1000                mom = createUTC([2000, i]);
1001                this._shortMonthsParse[i] = this.monthsShort(
1002                    mom,
1003                    ''
1004                ).toLocaleLowerCase();
1005                this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();
1006            }
1007        }
1008
1009        if (strict) {
1010            if (format === 'MMM') {
1011                ii = indexOf.call(this._shortMonthsParse, llc);
1012                return ii !== -1 ? ii : null;
1013            } else {
1014                ii = indexOf.call(this._longMonthsParse, llc);
1015                return ii !== -1 ? ii : null;
1016            }
1017        } else {
1018            if (format === 'MMM') {
1019                ii = indexOf.call(this._shortMonthsParse, llc);
1020                if (ii !== -1) {
1021                    return ii;
1022                }
1023                ii = indexOf.call(this._longMonthsParse, llc);
1024                return ii !== -1 ? ii : null;
1025            } else {
1026                ii = indexOf.call(this._longMonthsParse, llc);
1027                if (ii !== -1) {
1028                    return ii;
1029                }
1030                ii = indexOf.call(this._shortMonthsParse, llc);
1031                return ii !== -1 ? ii : null;
1032            }
1033        }
1034    }
1035
1036    function localeMonthsParse(monthName, format, strict) {
1037        var i, mom, regex;
1038
1039        if (this._monthsParseExact) {
1040            return handleStrictParse.call(this, monthName, format, strict);
1041        }
1042
1043        if (!this._monthsParse) {
1044            this._monthsParse = [];
1045            this._longMonthsParse = [];
1046            this._shortMonthsParse = [];
1047        }
1048
1049        // TODO: add sorting
1050        // Sorting makes sure if one month (or abbr) is a prefix of another
1051        // see sorting in computeMonthsParse
1052        for (i = 0; i < 12; i++) {
1053            // make the regex if we don't have it already
1054            mom = createUTC([2000, i]);
1055            if (strict && !this._longMonthsParse[i]) {
1056                this._longMonthsParse[i] = new RegExp(
1057                    '^' + this.months(mom, '').replace('.', '') + '$',
1058                    'i'
1059                );
1060                this._shortMonthsParse[i] = new RegExp(
1061                    '^' + this.monthsShort(mom, '').replace('.', '') + '$',
1062                    'i'
1063                );
1064            }
1065            if (!strict && !this._monthsParse[i]) {
1066                regex =
1067                    '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
1068                this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
1069            }
1070            // test the regex
1071            if (
1072                strict &&
1073                format === 'MMMM' &&
1074                this._longMonthsParse[i].test(monthName)
1075            ) {
1076                return i;
1077            } else if (
1078                strict &&
1079                format === 'MMM' &&
1080                this._shortMonthsParse[i].test(monthName)
1081            ) {
1082                return i;
1083            } else if (!strict && this._monthsParse[i].test(monthName)) {
1084                return i;
1085            }
1086        }
1087    }
1088
1089    // MOMENTS
1090
1091    function setMonth(mom, value) {
1092        var dayOfMonth;
1093
1094        if (!mom.isValid()) {
1095            // No op
1096            return mom;
1097        }
1098
1099        if (typeof value === 'string') {
1100            if (/^\d+$/.test(value)) {
1101                value = toInt(value);
1102            } else {
1103                value = mom.localeData().monthsParse(value);
1104                // TODO: Another silent failure?
1105                if (!isNumber(value)) {
1106                    return mom;
1107                }
1108            }
1109        }
1110
1111        dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));
1112        mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
1113        return mom;
1114    }
1115
1116    function getSetMonth(value) {
1117        if (value != null) {
1118            setMonth(this, value);
1119            hooks.updateOffset(this, true);
1120            return this;
1121        } else {
1122            return get(this, 'Month');
1123        }
1124    }
1125
1126    function getDaysInMonth() {
1127        return daysInMonth(this.year(), this.month());
1128    }
1129
1130    function monthsShortRegex(isStrict) {
1131        if (this._monthsParseExact) {
1132            if (!hasOwnProp(this, '_monthsRegex')) {
1133                computeMonthsParse.call(this);
1134            }
1135            if (isStrict) {
1136                return this._monthsShortStrictRegex;
1137            } else {
1138                return this._monthsShortRegex;
1139            }
1140        } else {
1141            if (!hasOwnProp(this, '_monthsShortRegex')) {
1142                this._monthsShortRegex = defaultMonthsShortRegex;
1143            }
1144            return this._monthsShortStrictRegex && isStrict
1145                ? this._monthsShortStrictRegex
1146                : this._monthsShortRegex;
1147        }
1148    }
1149
1150    function monthsRegex(isStrict) {
1151        if (this._monthsParseExact) {
1152            if (!hasOwnProp(this, '_monthsRegex')) {
1153                computeMonthsParse.call(this);
1154            }
1155            if (isStrict) {
1156                return this._monthsStrictRegex;
1157            } else {
1158                return this._monthsRegex;
1159            }
1160        } else {
1161            if (!hasOwnProp(this, '_monthsRegex')) {
1162                this._monthsRegex = defaultMonthsRegex;
1163            }
1164            return this._monthsStrictRegex && isStrict
1165                ? this._monthsStrictRegex
1166                : this._monthsRegex;
1167        }
1168    }
1169
1170    function computeMonthsParse() {
1171        function cmpLenRev(a, b) {
1172            return b.length - a.length;
1173        }
1174
1175        var shortPieces = [],
1176            longPieces = [],
1177            mixedPieces = [],
1178            i,
1179            mom;
1180        for (i = 0; i < 12; i++) {
1181            // make the regex if we don't have it already
1182            mom = createUTC([2000, i]);
1183            shortPieces.push(this.monthsShort(mom, ''));
1184            longPieces.push(this.months(mom, ''));
1185            mixedPieces.push(this.months(mom, ''));
1186            mixedPieces.push(this.monthsShort(mom, ''));
1187        }
1188        // Sorting makes sure if one month (or abbr) is a prefix of another it
1189        // will match the longer piece.
1190        shortPieces.sort(cmpLenRev);
1191        longPieces.sort(cmpLenRev);
1192        mixedPieces.sort(cmpLenRev);
1193        for (i = 0; i < 12; i++) {
1194            shortPieces[i] = regexEscape(shortPieces[i]);
1195            longPieces[i] = regexEscape(longPieces[i]);
1196        }
1197        for (i = 0; i < 24; i++) {
1198            mixedPieces[i] = regexEscape(mixedPieces[i]);
1199        }
1200
1201        this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1202        this._monthsShortRegex = this._monthsRegex;
1203        this._monthsStrictRegex = new RegExp(
1204            '^(' + longPieces.join('|') + ')',
1205            'i'
1206        );
1207        this._monthsShortStrictRegex = new RegExp(
1208            '^(' + shortPieces.join('|') + ')',
1209            'i'
1210        );
1211    }
1212
1213    // FORMATTING
1214
1215    addFormatToken('Y', 0, 0, function () {
1216        var y = this.year();
1217        return y <= 9999 ? zeroFill(y, 4) : '+' + y;
1218    });
1219
1220    addFormatToken(0, ['YY', 2], 0, function () {
1221        return this.year() % 100;
1222    });
1223
1224    addFormatToken(0, ['YYYY', 4], 0, 'year');
1225    addFormatToken(0, ['YYYYY', 5], 0, 'year');
1226    addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');
1227
1228    // ALIASES
1229
1230    addUnitAlias('year', 'y');
1231
1232    // PRIORITIES
1233
1234    addUnitPriority('year', 1);
1235
1236    // PARSING
1237
1238    addRegexToken('Y', matchSigned);
1239    addRegexToken('YY', match1to2, match2);
1240    addRegexToken('YYYY', match1to4, match4);
1241    addRegexToken('YYYYY', match1to6, match6);
1242    addRegexToken('YYYYYY', match1to6, match6);
1243
1244    addParseToken(['YYYYY', 'YYYYYY'], YEAR);
1245    addParseToken('YYYY', function (input, array) {
1246        array[YEAR] =
1247            input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);
1248    });
1249    addParseToken('YY', function (input, array) {
1250        array[YEAR] = hooks.parseTwoDigitYear(input);
1251    });
1252    addParseToken('Y', function (input, array) {
1253        array[YEAR] = parseInt(input, 10);
1254    });
1255
1256    // HELPERS
1257
1258    function daysInYear(year) {
1259        return isLeapYear(year) ? 366 : 365;
1260    }
1261
1262    // HOOKS
1263
1264    hooks.parseTwoDigitYear = function (input) {
1265        return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
1266    };
1267
1268    // MOMENTS
1269
1270    var getSetYear = makeGetSet('FullYear', true);
1271
1272    function getIsLeapYear() {
1273        return isLeapYear(this.year());
1274    }
1275
1276    function createDate(y, m, d, h, M, s, ms) {
1277        // can't just apply() to create a date:
1278        // https://stackoverflow.com/q/181348
1279        var date;
1280        // the date constructor remaps years 0-99 to 1900-1999
1281        if (y < 100 && y >= 0) {
1282            // preserve leap years using a full 400 year cycle, then reset
1283            date = new Date(y + 400, m, d, h, M, s, ms);
1284            if (isFinite(date.getFullYear())) {
1285                date.setFullYear(y);
1286            }
1287        } else {
1288            date = new Date(y, m, d, h, M, s, ms);
1289        }
1290
1291        return date;
1292    }
1293
1294    function createUTCDate(y) {
1295        var date, args;
1296        // the Date.UTC function remaps years 0-99 to 1900-1999
1297        if (y < 100 && y >= 0) {
1298            args = Array.prototype.slice.call(arguments);
1299            // preserve leap years using a full 400 year cycle, then reset
1300            args[0] = y + 400;
1301            date = new Date(Date.UTC.apply(null, args));
1302            if (isFinite(date.getUTCFullYear())) {
1303                date.setUTCFullYear(y);
1304            }
1305        } else {
1306            date = new Date(Date.UTC.apply(null, arguments));
1307        }
1308
1309        return date;
1310    }
1311
1312    // start-of-first-week - start-of-year
1313    function firstWeekOffset(year, dow, doy) {
1314        var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1315            fwd = 7 + dow - doy,
1316            // first-week day local weekday -- which local weekday is fwd
1317            fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1318
1319        return -fwdlw + fwd - 1;
1320    }
1321
1322    // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1323    function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1324        var localWeekday = (7 + weekday - dow) % 7,
1325            weekOffset = firstWeekOffset(year, dow, doy),
1326            dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1327            resYear,
1328            resDayOfYear;
1329
1330        if (dayOfYear <= 0) {
1331            resYear = year - 1;
1332            resDayOfYear = daysInYear(resYear) + dayOfYear;
1333        } else if (dayOfYear > daysInYear(year)) {
1334            resYear = year + 1;
1335            resDayOfYear = dayOfYear - daysInYear(year);
1336        } else {
1337            resYear = year;
1338            resDayOfYear = dayOfYear;
1339        }
1340
1341        return {
1342            year: resYear,
1343            dayOfYear: resDayOfYear,
1344        };
1345    }
1346
1347    function weekOfYear(mom, dow, doy) {
1348        var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1349            week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1350            resWeek,
1351            resYear;
1352
1353        if (week < 1) {
1354            resYear = mom.year() - 1;
1355            resWeek = week + weeksInYear(resYear, dow, doy);
1356        } else if (week > weeksInYear(mom.year(), dow, doy)) {
1357            resWeek = week - weeksInYear(mom.year(), dow, doy);
1358            resYear = mom.year() + 1;
1359        } else {
1360            resYear = mom.year();
1361            resWeek = week;
1362        }
1363
1364        return {
1365            week: resWeek,
1366            year: resYear,
1367        };
1368    }
1369
1370    function weeksInYear(year, dow, doy) {
1371        var weekOffset = firstWeekOffset(year, dow, doy),
1372            weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1373        return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1374    }
1375
1376    // FORMATTING
1377
1378    addFormatToken('w', ['ww', 2], 'wo', 'week');
1379    addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1380
1381    // ALIASES
1382
1383    addUnitAlias('week', 'w');
1384    addUnitAlias('isoWeek', 'W');
1385
1386    // PRIORITIES
1387
1388    addUnitPriority('week', 5);
1389    addUnitPriority('isoWeek', 5);
1390
1391    // PARSING
1392
1393    addRegexToken('w', match1to2);
1394    addRegexToken('ww', match1to2, match2);
1395    addRegexToken('W', match1to2);
1396    addRegexToken('WW', match1to2, match2);
1397
1398    addWeekParseToken(
vendor: 3,487 bytes, lines 1398-1529
1398
1399        ['w', 'ww', 'W', 'WW'],
1400        function (input, week, config, token) {
1401            week[token.substr(0, 1)] = toInt(input);
1402        }
1403    );
1404
1405    // HELPERS
1406
1407    // LOCALES
1408
1409    function localeWeek(mom) {
1410        return weekOfYear(mom, this._week.dow, this._week.doy).week;
1411    }
1412
1413    var defaultLocaleWeek = {
1414        dow: 0, // Sunday is the first day of the week.
1415        doy: 6, // The week that contains Jan 6th is the first week of the year.
1416    };
1417
1418    function localeFirstDayOfWeek() {
1419        return this._week.dow;
1420    }
1421
1422    function localeFirstDayOfYear() {
1423        return this._week.doy;
1424    }
1425
1426    // MOMENTS
1427
1428    function getSetWeek(input) {
1429        var week = this.localeData().week(this);
1430        return input == null ? week : this.add((input - week) * 7, 'd');
1431    }
1432
1433    function getSetISOWeek(input) {
1434        var week = weekOfYear(this, 1, 4).week;
1435        return input == null ? week : this.add((input - week) * 7, 'd');
1436    }
1437
1438    // FORMATTING
1439
1440    addFormatToken('d', 0, 'do', 'day');
1441
1442    addFormatToken('dd', 0, 0, function (format) {
1443        return this.localeData().weekdaysMin(this, format);
1444    });
1445
1446    addFormatToken('ddd', 0, 0, function (format) {
1447        return this.localeData().weekdaysShort(this, format);
1448    });
1449
1450    addFormatToken('dddd', 0, 0, function (format) {
1451        return this.localeData().weekdays(this, format);
1452    });
1453
1454    addFormatToken('e', 0, 0, 'weekday');
1455    addFormatToken('E', 0, 0, 'isoWeekday');
1456
1457    // ALIASES
1458
1459    addUnitAlias('day', 'd');
1460    addUnitAlias('weekday', 'e');
1461    addUnitAlias('isoWeekday', 'E');
1462
1463    // PRIORITY
1464    addUnitPriority('day', 11);
1465    addUnitPriority('weekday', 11);
1466    addUnitPriority('isoWeekday', 11);
1467
1468    // PARSING
1469
1470    addRegexToken('d', match1to2);
1471    addRegexToken('e', match1to2);
1472    addRegexToken('E', match1to2);
1473    addRegexToken('dd', function (isStrict, locale) {
1474        return locale.weekdaysMinRegex(isStrict);
1475    });
1476    addRegexToken('ddd', function (isStrict, locale) {
1477        return locale.weekdaysShortRegex(isStrict);
1478    });
1479    addRegexToken('dddd', function (isStrict, locale) {
1480        return locale.weekdaysRegex(isStrict);
1481    });
1482
1483    addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {
1484        var weekday = config._locale.weekdaysParse(input, token, config._strict);
1485        // if we didn't get a weekday name, mark the date as invalid
1486        if (weekday != null) {
1487            week.d = weekday;
1488        } else {
1489            getParsingFlags(config).invalidWeekday = input;
1490        }
1491    });
1492
1493    addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {
1494        week[token] = toInt(input);
1495    });
1496
1497    // HELPERS
1498
1499    function parseWeekday(input, locale) {
1500        if (typeof input !== 'string') {
1501            return input;
1502        }
1503
1504        if (!isNaN(input)) {
1505            return parseInt(input, 10);
1506        }
1507
1508        input = locale.weekdaysParse(input);
1509        if (typeof input === 'number') {
1510            return input;
1511        }
1512
1513        return null;
1514    }
1515
1516    function parseIsoWeekday(input, locale) {
1517        if (typeof input === 'string') {
1518            return locale.weekdaysParse(input) % 7 || 7;
1519        }
1520        return isNaN(input) ? null : input;
1521    }
1522
1523    // LOCALES
1524    function shiftWeekdays(ws, n) {
1525        return ws.slice(n, 7).concat(ws.slice(0, n));
1526    }
1527
1528    var defaultLocaleWeekdays =
1529            'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'
vendor: 17,864 bytes, lines 1529-2077
1529),
1530        defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
1531        defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
1532        defaultWeekdaysRegex = matchWord,
1533        defaultWeekdaysShortRegex = matchWord,
1534        defaultWeekdaysMinRegex = matchWord;
1535
1536    function localeWeekdays(m, format) {
1537        var weekdays = isArray(this._weekdays)
1538            ? this._weekdays
1539            : this._weekdays[
1540                  m && m !== true && this._weekdays.isFormat.test(format)
1541                      ? 'format'
1542                      : 'standalone'
1543              ];
1544        return m === true
1545            ? shiftWeekdays(weekdays, this._week.dow)
1546            : m
1547            ? weekdays[m.day()]
1548            : weekdays;
1549    }
1550
1551    function localeWeekdaysShort(m) {
1552        return m === true
1553            ? shiftWeekdays(this._weekdaysShort, this._week.dow)
1554            : m
1555            ? this._weekdaysShort[m.day()]
1556            : this._weekdaysShort;
1557    }
1558
1559    function localeWeekdaysMin(m) {
1560        return m === true
1561            ? shiftWeekdays(this._weekdaysMin, this._week.dow)
1562            : m
1563            ? this._weekdaysMin[m.day()]
1564            : this._weekdaysMin;
1565    }
1566
1567    function handleStrictParse$1(weekdayName, format, strict) {
1568        var i,
1569            ii,
1570            mom,
1571            llc = weekdayName.toLocaleLowerCase();
1572        if (!this._weekdaysParse) {
1573            this._weekdaysParse = [];
1574            this._shortWeekdaysParse = [];
1575            this._minWeekdaysParse = [];
1576
1577            for (i = 0; i < 7; ++i) {
1578                mom = createUTC([2000, 1]).day(i);
1579                this._minWeekdaysParse[i] = this.weekdaysMin(
1580                    mom,
1581                    ''
1582                ).toLocaleLowerCase();
1583                this._shortWeekdaysParse[i] = this.weekdaysShort(
1584                    mom,
1585                    ''
1586                ).toLocaleLowerCase();
1587                this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();
1588            }
1589        }
1590
1591        if (strict) {
1592            if (format === 'dddd') {
1593                ii = indexOf.call(this._weekdaysParse, llc);
1594                return ii !== -1 ? ii : null;
1595            } else if (format === 'ddd') {
1596                ii = indexOf.call(this._shortWeekdaysParse, llc);
1597                return ii !== -1 ? ii : null;
1598            } else {
1599                ii = indexOf.call(this._minWeekdaysParse, llc);
1600                return ii !== -1 ? ii : null;
1601            }
1602        } else {
1603            if (format === 'dddd') {
1604                ii = indexOf.call(this._weekdaysParse, llc);
1605                if (ii !== -1) {
1606                    return ii;
1607                }
1608                ii = indexOf.call(this._shortWeekdaysParse, llc);
1609                if (ii !== -1) {
1610                    return ii;
1611                }
1612                ii = indexOf.call(this._minWeekdaysParse, llc);
1613                return ii !== -1 ? ii : null;
1614            } else if (format === 'ddd') {
1615                ii = indexOf.call(this._shortWeekdaysParse, llc);
1616                if (ii !== -1) {
1617                    return ii;
1618                }
1619                ii = indexOf.call(this._weekdaysParse, llc);
1620                if (ii !== -1) {
1621                    return ii;
1622                }
1623                ii = indexOf.call(this._minWeekdaysParse, llc);
1624                return ii !== -1 ? ii : null;
1625            } else {
1626                ii = indexOf.call(this._minWeekdaysParse, llc);
1627                if (ii !== -1) {
1628                    return ii;
1629                }
1630                ii = indexOf.call(this._weekdaysParse, llc);
1631                if (ii !== -1) {
1632                    return ii;
1633                }
1634                ii = indexOf.call(this._shortWeekdaysParse, llc);
1635                return ii !== -1 ? ii : null;
1636            }
1637        }
1638    }
1639
1640    function localeWeekdaysParse(weekdayName, format, strict) {
1641        var i, mom, regex;
1642
1643        if (this._weekdaysParseExact) {
1644            return handleStrictParse$1.call(this, weekdayName, format, strict);
1645        }
1646
1647        if (!this._weekdaysParse) {
1648            this._weekdaysParse = [];
1649            this._minWeekdaysParse = [];
1650            this._shortWeekdaysParse = [];
1651            this._fullWeekdaysParse = [];
1652        }
1653
1654        for (i = 0; i < 7; i++) {
1655            // make the regex if we don't have it already
1656
1657            mom = createUTC([2000, 1]).day(i);
1658            if (strict && !this._fullWeekdaysParse[i]) {
1659                this._fullWeekdaysParse[i] = new RegExp(
1660                    '^' + this.weekdays(mom, '').replace('.', '\\.?') + '$',
1661                    'i'
1662                );
1663                this._shortWeekdaysParse[i] = new RegExp(
1664                    '^' + this.weekdaysShort(mom, '').replace('.', '\\.?') + '$',
1665                    'i'
1666                );
1667                this._minWeekdaysParse[i] = new RegExp(
1668                    '^' + this.weekdaysMin(mom, '').replace('.', '\\.?') + '$',
1669                    'i'
1670                );
1671            }
1672            if (!this._weekdaysParse[i]) {
1673                regex =
1674                    '^' +
1675                    this.weekdays(mom, '') +
1676                    '|^' +
1677                    this.weekdaysShort(mom, '') +
1678                    '|^' +
1679                    this.weekdaysMin(mom, '');
1680                this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
1681            }
1682            // test the regex
1683            if (
1684                strict &&
1685                format === 'dddd' &&
1686                this._fullWeekdaysParse[i].test(weekdayName)
1687            ) {
1688                return i;
1689            } else if (
1690                strict &&
1691                format === 'ddd' &&
1692                this._shortWeekdaysParse[i].test(weekdayName)
1693            ) {
1694                return i;
1695            } else if (
1696                strict &&
1697                format === 'dd' &&
1698                this._minWeekdaysParse[i].test(weekdayName)
1699            ) {
1700                return i;
1701            } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {
1702                return i;
1703            }
1704        }
1705    }
1706
1707    // MOMENTS
1708
1709    function getSetDayOfWeek(input) {
1710        if (!this.isValid()) {
1711            return input != null ? this : NaN;
1712        }
1713        var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
1714        if (input != null) {
1715            input = parseWeekday(input, this.localeData());
1716            return this.add(input - day, 'd');
1717        } else {
1718            return day;
1719        }
1720    }
1721
1722    function getSetLocaleDayOfWeek(input) {
1723        if (!this.isValid()) {
1724            return input != null ? this : NaN;
1725        }
1726        var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1727        return input == null ? weekday : this.add(input - weekday, 'd');
1728    }
1729
1730    function getSetISODayOfWeek(input) {
1731        if (!this.isValid()) {
1732            return input != null ? this : NaN;
1733        }
1734
1735        // behaves the same as moment#day except
1736        // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1737        // as a setter, sunday should belong to the previous week.
1738
1739        if (input != null) {
1740            var weekday = parseIsoWeekday(input, this.localeData());
1741            return this.day(this.day() % 7 ? weekday : weekday - 7);
1742        } else {
1743            return this.day() || 7;
1744        }
1745    }
1746
1747    function weekdaysRegex(isStrict) {
1748        if (this._weekdaysParseExact) {
1749            if (!hasOwnProp(this, '_weekdaysRegex')) {
1750                computeWeekdaysParse.call(this);
1751            }
1752            if (isStrict) {
1753                return this._weekdaysStrictRegex;
1754            } else {
1755                return this._weekdaysRegex;
1756            }
1757        } else {
1758            if (!hasOwnProp(this, '_weekdaysRegex')) {
1759                this._weekdaysRegex = defaultWeekdaysRegex;
1760            }
1761            return this._weekdaysStrictRegex && isStrict
1762                ? this._weekdaysStrictRegex
1763                : this._weekdaysRegex;
1764        }
1765    }
1766
1767    function weekdaysShortRegex(isStrict) {
1768        if (this._weekdaysParseExact) {
1769            if (!hasOwnProp(this, '_weekdaysRegex')) {
1770                computeWeekdaysParse.call(this);
1771            }
1772            if (isStrict) {
1773                return this._weekdaysShortStrictRegex;
1774            } else {
1775                return this._weekdaysShortRegex;
1776            }
1777        } else {
1778            if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1779                this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1780            }
1781            return this._weekdaysShortStrictRegex && isStrict
1782                ? this._weekdaysShortStrictRegex
1783                : this._weekdaysShortRegex;
1784        }
1785    }
1786
1787    function weekdaysMinRegex(isStrict) {
1788        if (this._weekdaysParseExact) {
1789            if (!hasOwnProp(this, '_weekdaysRegex')) {
1790                computeWeekdaysParse.call(this);
1791            }
1792            if (isStrict) {
1793                return this._weekdaysMinStrictRegex;
1794            } else {
1795                return this._weekdaysMinRegex;
1796            }
1797        } else {
1798            if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1799                this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1800            }
1801            return this._weekdaysMinStrictRegex && isStrict
1802                ? this._weekdaysMinStrictRegex
1803                : this._weekdaysMinRegex;
1804        }
1805    }
1806
1807    function computeWeekdaysParse() {
1808        function cmpLenRev(a, b) {
1809            return b.length - a.length;
1810        }
1811
1812        var minPieces = [],
1813            shortPieces = [],
1814            longPieces = [],
1815            mixedPieces = [],
1816            i,
1817            mom,
1818            minp,
1819            shortp,
1820            longp;
1821        for (i = 0; i < 7; i++) {
1822            // make the regex if we don't have it already
1823            mom = createUTC([2000, 1]).day(i);
1824            minp = regexEscape(this.weekdaysMin(mom, ''));
1825            shortp = regexEscape(this.weekdaysShort(mom, ''));
1826            longp = regexEscape(this.weekdays(mom, ''));
1827            minPieces.push(minp);
1828            shortPieces.push(shortp);
1829            longPieces.push(longp);
1830            mixedPieces.push(minp);
1831            mixedPieces.push(shortp);
1832            mixedPieces.push(longp);
1833        }
1834        // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1835        // will match the longer piece.
1836        minPieces.sort(cmpLenRev);
1837        shortPieces.sort(cmpLenRev);
1838        longPieces.sort(cmpLenRev);
1839        mixedPieces.sort(cmpLenRev);
1840
1841        this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1842        this._weekdaysShortRegex = this._weekdaysRegex;
1843        this._weekdaysMinRegex = this._weekdaysRegex;
1844
1845        this._weekdaysStrictRegex = new RegExp(
1846            '^(' + longPieces.join('|') + ')',
1847            'i'
1848        );
1849        this._weekdaysShortStrictRegex = new RegExp(
1850            '^(' + shortPieces.join('|') + ')',
1851            'i'
1852        );
1853        this._weekdaysMinStrictRegex = new RegExp(
1854            '^(' + minPieces.join('|') + ')',
1855            'i'
1856        );
1857    }
1858
1859    // FORMATTING
1860
1861    function hFormat() {
1862        return this.hours() % 12 || 12;
1863    }
1864
1865    function kFormat() {
1866        return this.hours() || 24;
1867    }
1868
1869    addFormatToken('H', ['HH', 2], 0, 'hour');
1870    addFormatToken('h', ['hh', 2], 0, hFormat);
1871    addFormatToken('k', ['kk', 2], 0, kFormat);
1872
1873    addFormatToken('hmm', 0, 0, function () {
1874        return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);
1875    });
1876
1877    addFormatToken('hmmss', 0, 0, function () {
1878        return (
1879            '' +
1880            hFormat.apply(this) +
1881            zeroFill(this.minutes(), 2) +
1882            zeroFill(this.seconds(), 2)
1883        );
1884    });
1885
1886    addFormatToken('Hmm', 0, 0, function () {
1887        return '' + this.hours() + zeroFill(this.minutes(), 2);
1888    });
1889
1890    addFormatToken('Hmmss', 0, 0, function () {
1891        return (
1892            '' +
1893            this.hours() +
1894            zeroFill(this.minutes(), 2) +
1895            zeroFill(this.seconds(), 2)
1896        );
1897    });
1898
1899    function meridiem(token, lowercase) {
1900        addFormatToken(token, 0, 0, function () {
1901            return this.localeData().meridiem(
1902                this.hours(),
1903                this.minutes(),
1904                lowercase
1905            );
1906        });
1907    }
1908
1909    meridiem('a', true);
1910    meridiem('A', false);
1911
1912    // ALIASES
1913
1914    addUnitAlias('hour', 'h');
1915
1916    // PRIORITY
1917    addUnitPriority('hour', 13);
1918
1919    // PARSING
1920
1921    function matchMeridiem(isStrict, locale) {
1922        return locale._meridiemParse;
1923    }
1924
1925    addRegexToken('a', matchMeridiem);
1926    addRegexToken('A', matchMeridiem);
1927    addRegexToken('H', match1to2);
1928    addRegexToken('h', match1to2);
1929    addRegexToken('k', match1to2);
1930    addRegexToken('HH', match1to2, match2);
1931    addRegexToken('hh', match1to2, match2);
1932    addRegexToken('kk', match1to2, match2);
1933
1934    addRegexToken('hmm', match3to4);
1935    addRegexToken('hmmss', match5to6);
1936    addRegexToken('Hmm', match3to4);
1937    addRegexToken('Hmmss', match5to6);
1938
1939    addParseToken(['H', 'HH'], HOUR);
1940    addParseToken(['k', 'kk'], function (input, array, config) {
1941        var kInput = toInt(input);
1942        array[HOUR] = kInput === 24 ? 0 : kInput;
1943    });
1944    addParseToken(['a', 'A'], function (input, array, config) {
1945        config._isPm = config._locale.isPM(input);
1946        config._meridiem = input;
1947    });
1948    addParseToken(['h', 'hh'], function (input, array, config) {
1949        array[HOUR] = toInt(input);
1950        getParsingFlags(config).bigHour = true;
1951    });
1952    addParseToken('hmm', function (input, array, config) {
1953        var pos = input.length - 2;
1954        array[HOUR] = toInt(input.substr(0, pos));
1955        array[MINUTE] = toInt(input.substr(pos));
1956        getParsingFlags(config).bigHour = true;
1957    });
1958    addParseToken('hmmss', function (input, array, config) {
1959        var pos1 = input.length - 4,
1960            pos2 = input.length - 2;
1961        array[HOUR] = toInt(input.substr(0, pos1));
1962        array[MINUTE] = toInt(input.substr(pos1, 2));
1963        array[SECOND] = toInt(input.substr(pos2));
1964        getParsingFlags(config).bigHour = true;
1965    });
1966    addParseToken('Hmm', function (input, array, config) {
1967        var pos = input.length - 2;
1968        array[HOUR] = toInt(input.substr(0, pos));
1969        array[MINUTE] = toInt(input.substr(pos));
1970    });
1971    addParseToken('Hmmss', function (input, array, config) {
1972        var pos1 = input.length - 4,
1973            pos2 = input.length - 2;
1974        array[HOUR] = toInt(input.substr(0, pos1));
1975        array[MINUTE] = toInt(input.substr(pos1, 2));
1976        array[SECOND] = toInt(input.substr(pos2));
1977    });
1978
1979    // LOCALES
1980
1981    function localeIsPM(input) {
1982        // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
1983        // Using charAt should be more compatible.
1984        return (input + '').toLowerCase().charAt(0) === 'p';
1985    }
1986
1987    var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i,
1988        // Setting the hour should keep the time, because the user explicitly
1989        // specified which hour they want. So trying to maintain the same hour (in
1990        // a new timezone) makes sense. Adding/subtracting hours does not follow
1991        // this rule.
1992        getSetHour = makeGetSet('Hours', true);
1993
1994    function localeMeridiem(hours, minutes, isLower) {
1995        if (hours > 11) {
1996            return isLower ? 'pm' : 'PM';
1997        } else {
1998            return isLower ? 'am' : 'AM';
1999        }
2000    }
2001
2002    var baseConfig = {
2003        calendar: defaultCalendar,
2004        longDateFormat: defaultLongDateFormat,
2005        invalidDate: defaultInvalidDate,
2006        ordinal: defaultOrdinal,
2007        dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,
2008        relativeTime: defaultRelativeTime,
2009
2010        months: defaultLocaleMonths,
2011        monthsShort: defaultLocaleMonthsShort,
2012
2013        week: defaultLocaleWeek,
2014
2015        weekdays: defaultLocaleWeekdays,
2016        weekdaysMin: defaultLocaleWeekdaysMin,
2017        weekdaysShort: defaultLocaleWeekdaysShort,
2018
2019        meridiemParse: defaultLocaleMeridiemParse,
2020    };
2021
2022    // internal storage for locale config files
2023    var locales = {},
2024        localeFamilies = {},
2025        globalLocale;
2026
2027    function commonPrefix(arr1, arr2) {
2028        var i,
2029            minl = Math.min(arr1.length, arr2.length);
2030        for (i = 0; i < minl; i += 1) {
2031            if (arr1[i] !== arr2[i]) {
2032                return i;
2033            }
2034        }
2035        return minl;
2036    }
2037
2038    function normalizeLocale(key) {
2039        return key ? key.toLowerCase().replace('_', '-') : key;
2040    }
2041
2042    // pick the locale from the array
2043    // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
2044    // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
2045    function chooseLocale(names) {
2046        var i = 0,
2047            j,
2048            next,
2049            locale,
2050            split;
2051
2052        while (i < names.length) {
2053            split = normalizeLocale(names[i]).split('-');
2054            j = split.length;
2055            next = normalizeLocale(names[i + 1]);
2056            next = next ? next.split('-') : null;
2057            while (j > 0) {
2058                locale = loadLocale(split.slice(0, j).join('-'));
2059                if (locale) {
2060                    return locale;
2061                }
2062                if (
2063                    next &&
2064                    next.length >= j &&
2065                    commonPrefix(split, next) >= j - 1
2066                ) {
2067                    //the next array item is better than a shallower substring of this one
2068                    break;
2069                }
2070                j--;
2071            }
2072            i++;
2073        }
2074        return globalLocale;
2075    }
2076
2077    function 
vendor: 10,067 bytes, lines 2077-2348
2077isLocaleNameSane(name) {
2078        // Prevent names that look like filesystem paths, i.e contain '/' or '\'
2079        return name.match('^[^/\\\\]*$') != null;
2080    }
2081
2082    function loadLocale(name) {
2083        var oldLocale = null,
2084            aliasedRequire;
2085        // TODO: Find a better way to register and load all the locales in Node
2086        if (
2087            locales[name] === undefined &&
2088            typeof module !== 'undefined' &&
2089            module &&
2090            module.exports &&
2091            isLocaleNameSane(name)
2092        ) {
2093            try {
2094                oldLocale = globalLocale._abbr;
2095                aliasedRequire = require;
2096                aliasedRequire('./locale/' + name);
2097                getSetGlobalLocale(oldLocale);
2098            } catch (e) {
2099                // mark as not found to avoid repeating expensive file require call causing high CPU
2100                // when trying to find en-US, en_US, en-us for every format call
2101                locales[name] = null; // null means not found
2102            }
2103        }
2104        return locales[name];
2105    }
2106
2107    // This function will load locale and then set the global locale.  If
2108    // no arguments are passed in, it will simply return the current global
2109    // locale key.
2110    function getSetGlobalLocale(key, values) {
2111        var data;
2112        if (key) {
2113            if (isUndefined(values)) {
2114                data = getLocale(key);
2115            } else {
2116                data = defineLocale(key, values);
2117            }
2118
2119            if (data) {
2120                // moment.duration._locale = moment._locale = data;
2121                globalLocale = data;
2122            } else {
2123                if (typeof console !== 'undefined' && console.warn) {
2124                    //warn user if arguments are passed but the locale could not be set
2125                    console.warn(
2126                        'Locale ' + key + ' not found. Did you forget to load it?'
2127                    );
2128                }
2129            }
2130        }
2131
2132        return globalLocale._abbr;
2133    }
2134
2135    function defineLocale(name, config) {
2136        if (config !== null) {
2137            var locale,
2138                parentConfig = baseConfig;
2139            config.abbr = name;
2140            if (locales[name] != null) {
2141                deprecateSimple(
2142                    'defineLocaleOverride',
2143                    'use moment.updateLocale(localeName, config) to change ' +
2144                        'an existing locale. moment.defineLocale(localeName, ' +
2145                        'config) should only be used for creating a new locale ' +
2146                        'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'
2147                );
2148                parentConfig = locales[name]._config;
2149            } else if (config.parentLocale != null) {
2150                if (locales[config.parentLocale] != null) {
2151                    parentConfig = locales[config.parentLocale]._config;
2152                } else {
2153                    locale = loadLocale(config.parentLocale);
2154                    if (locale != null) {
2155                        parentConfig = locale._config;
2156                    } else {
2157                        if (!localeFamilies[config.parentLocale]) {
2158                            localeFamilies[config.parentLocale] = [];
2159                        }
2160                        localeFamilies[config.parentLocale].push({
2161                            name: name,
2162                            config: config,
2163                        });
2164                        return null;
2165                    }
2166                }
2167            }
2168            locales[name] = new Locale(mergeConfigs(parentConfig, config));
2169
2170            if (localeFamilies[name]) {
2171                localeFamilies[name].forEach(function (x) {
2172                    defineLocale(x.name, x.config);
2173                });
2174            }
2175
2176            // backwards compat for now: also set the locale
2177            // make sure we set the locale AFTER all child locales have been
2178            // created, so we won't end up with the child locale set.
2179            getSetGlobalLocale(name);
2180
2181            return locales[name];
2182        } else {
2183            // useful for testing
2184            delete locales[name];
2185            return null;
2186        }
2187    }
2188
2189    function updateLocale(name, config) {
2190        if (config != null) {
2191            var locale,
2192                tmpLocale,
2193                parentConfig = baseConfig;
2194
2195            if (locales[name] != null && locales[name].parentLocale != null) {
2196                // Update existing child locale in-place to avoid memory-leaks
2197                locales[name].set(mergeConfigs(locales[name]._config, config));
2198            } else {
2199                // MERGE
2200                tmpLocale = loadLocale(name);
2201                if (tmpLocale != null) {
2202                    parentConfig = tmpLocale._config;
2203                }
2204                config = mergeConfigs(parentConfig, config);
2205                if (tmpLocale == null) {
2206                    // updateLocale is called for creating a new locale
2207                    // Set abbr so it will have a name (getters return
2208                    // undefined otherwise).
2209                    config.abbr = name;
2210                }
2211                locale = new Locale(config);
2212                locale.parentLocale = locales[name];
2213                locales[name] = locale;
2214            }
2215
2216            // backwards compat for now: also set the locale
2217            getSetGlobalLocale(name);
2218        } else {
2219            // pass null for config to unupdate, useful for tests
2220            if (locales[name] != null) {
2221                if (locales[name].parentLocale != null) {
2222                    locales[name] = locales[name].parentLocale;
2223                    if (name === getSetGlobalLocale()) {
2224                        getSetGlobalLocale(name);
2225                    }
2226                } else if (locales[name] != null) {
2227                    delete locales[name];
2228                }
2229            }
2230        }
2231        return locales[name];
2232    }
2233
2234    // returns locale data
2235    function getLocale(key) {
2236        var locale;
2237
2238        if (key && key._locale && key._locale._abbr) {
2239            key = key._locale._abbr;
2240        }
2241
2242        if (!key) {
2243            return globalLocale;
2244        }
2245
2246        if (!isArray(key)) {
2247            //short-circuit everything else
2248            locale = loadLocale(key);
2249            if (locale) {
2250                return locale;
2251            }
2252            key = [key];
2253        }
2254
2255        return chooseLocale(key);
2256    }
2257
2258    function listLocales() {
2259        return keys(locales);
2260    }
2261
2262    function checkOverflow(m) {
2263        var overflow,
2264            a = m._a;
2265
2266        if (a && getParsingFlags(m).overflow === -2) {
2267            overflow =
2268                a[MONTH] < 0 || a[MONTH] > 11
2269                    ? MONTH
2270                    : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])
2271                    ? DATE
2272                    : a[HOUR] < 0 ||
2273                      a[HOUR] > 24 ||
2274                      (a[HOUR] === 24 &&
2275                          (a[MINUTE] !== 0 ||
2276                              a[SECOND] !== 0 ||
2277                              a[MILLISECOND] !== 0))
2278                    ? HOUR
2279                    : a[MINUTE] < 0 || a[MINUTE] > 59
2280                    ? MINUTE
2281                    : a[SECOND] < 0 || a[SECOND] > 59
2282                    ? SECOND
2283                    : a[MILLISECOND] < 0 || a[MILLISECOND] > 999
2284                    ? MILLISECOND
2285                    : -1;
2286
2287            if (
2288                getParsingFlags(m)._overflowDayOfYear &&
2289                (overflow < YEAR || overflow > DATE)
2290            ) {
2291                overflow = DATE;
2292            }
2293            if (getParsingFlags(m)._overflowWeeks && overflow === -1) {
2294                overflow = WEEK;
2295            }
2296            if (getParsingFlags(m)._overflowWeekday && overflow === -1) {
2297                overflow = WEEKDAY;
2298            }
2299
2300            getParsingFlags(m).overflow = overflow;
2301        }
2302
2303        return m;
2304    }
2305
2306    // iso 8601 regex
2307    // 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)
2308    var extendedIsoRegex =
2309            /^\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)?)?$/,
2310        basicIsoRegex =
2311            /^\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)?)?$/,
2312        tzRegex = /Z|[+-]\d\d(?::?\d\d)?/,
2313        isoDates = [
2314            ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/],
2315            ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/],
2316            ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/],
2317            ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
2318            ['YYYY-DDD', /\d{4}-\d{3}/],
2319            ['YYYY-MM', /\d{4}-\d\d/, false],
2320            ['YYYYYYMMDD', /[+-]\d{10}/],
2321            ['YYYYMMDD', /\d{8}/],
2322            ['GGGG[W]WWE', /\d{4}W\d{3}/],
2323            ['GGGG[W]WW', /\d{4}W\d{2}/, false],
2324            ['YYYYDDD', /\d{7}/],
2325            ['YYYYMM', /\d{6}/, false],
2326            ['YYYY', /\d{4}/, false],
2327        ],
2328        // iso time formats and regexes
2329        isoTimes = [
2330            ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
2331            ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
2332            ['HH:mm:ss', /\d\d:\d\d:\d\d/],
2333            ['HH:mm', /\d\d:\d\d/],
2334            ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
2335            ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
2336            ['HHmmss', /\d\d\d\d\d\d/],
2337            ['HHmm', /\d\d\d\d/],
2338            ['HH', /\d\d/],
2339        ],
2340        aspNetJsonRegex = /^\/?Date\((-?\d+)/i,
2341        // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
2342        rfc2822 =
2343            /^(?:(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}))$/,
2344        obsOffsets = {
2345            UT: 0,
2346            GMT: 0,
2347            EDT: -4 * 60,
2348            EST: -5 * 60,
vendor: 24,421 bytes, lines 2349-3129
2349            CDT: -5 * 60,
2350            CST: -6 * 60,
2351            MDT: -6 * 60,
2352            MST: -7 * 60,
2353            PDT: -7 * 60,
2354            PST: -8 * 60,
2355        };
2356
2357    // date from iso format
2358    function configFromISO(config) {
2359        var i,
2360            l,
2361            string = config._i,
2362            match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
2363            allowTime,
2364            dateFormat,
2365            timeFormat,
2366            tzFormat,
2367            isoDatesLen = isoDates.length,
2368            isoTimesLen = isoTimes.length;
2369
2370        if (match) {
2371            getParsingFlags(config).iso = true;
2372            for (i = 0, l = isoDatesLen; i < l; i++) {
2373                if (isoDates[i][1].exec(match[1])) {
2374                    dateFormat = isoDates[i][0];
2375                    allowTime = isoDates[i][2] !== false;
2376                    break;
2377                }
2378            }
2379            if (dateFormat == null) {
2380                config._isValid = false;
2381                return;
2382            }
2383            if (match[3]) {
2384                for (i = 0, l = isoTimesLen; i < l; i++) {
2385                    if (isoTimes[i][1].exec(match[3])) {
2386                        // match[2] should be 'T' or space
2387                        timeFormat = (match[2] || ' ') + isoTimes[i][0];
2388                        break;
2389                    }
2390                }
2391                if (timeFormat == null) {
2392                    config._isValid = false;
2393                    return;
2394                }
2395            }
2396            if (!allowTime && timeFormat != null) {
2397                config._isValid = false;
2398                return;
2399            }
2400            if (match[4]) {
2401                if (tzRegex.exec(match[4])) {
2402                    tzFormat = 'Z';
2403                } else {
2404                    config._isValid = false;
2405                    return;
2406                }
2407            }
2408            config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
2409            configFromStringAndFormat(config);
2410        } else {
2411            config._isValid = false;
2412        }
2413    }
2414
2415    function extractFromRFC2822Strings(
2416        yearStr,
2417        monthStr,
2418        dayStr,
2419        hourStr,
2420        minuteStr,
2421        secondStr
2422    ) {
2423        var result = [
2424            untruncateYear(yearStr),
2425            defaultLocaleMonthsShort.indexOf(monthStr),
2426            parseInt(dayStr, 10),
2427            parseInt(hourStr, 10),
2428            parseInt(minuteStr, 10),
2429        ];
2430
2431        if (secondStr) {
2432            result.push(parseInt(secondStr, 10));
2433        }
2434
2435        return result;
2436    }
2437
2438    function untruncateYear(yearStr) {
2439        var year = parseInt(yearStr, 10);
2440        if (year <= 49) {
2441            return 2000 + year;
2442        } else if (year <= 999) {
2443            return 1900 + year;
2444        }
2445        return year;
2446    }
2447
2448    function preprocessRFC2822(s) {
2449        // Remove comments and folding whitespace and replace multiple-spaces with a single space
2450        return s
2451            .replace(/\([^)]*\)|[\n\t]/g, ' ')
2452            .replace(/(\s\s+)/g, ' ')
2453            .replace(/^\s\s*/, '')
2454            .replace(/\s\s*$/, '');
2455    }
2456
2457    function checkWeekday(weekdayStr, parsedInput, config) {
2458        if (weekdayStr) {
2459            // TODO: Replace the vanilla JS Date object with an independent day-of-week check.
2460            var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),
2461                weekdayActual = new Date(
2462                    parsedInput[0],
2463                    parsedInput[1],
2464                    parsedInput[2]
2465                ).getDay();
2466            if (weekdayProvided !== weekdayActual) {
2467                getParsingFlags(config).weekdayMismatch = true;
2468                config._isValid = false;
2469                return false;
2470            }
2471        }
2472        return true;
2473    }
2474
2475    function calculateOffset(obsOffset, militaryOffset, numOffset) {
2476        if (obsOffset) {
2477            return obsOffsets[obsOffset];
2478        } else if (militaryOffset) {
2479            // the only allowed military tz is Z
2480            return 0;
2481        } else {
2482            var hm = parseInt(numOffset, 10),
2483                m = hm % 100,
2484                h = (hm - m) / 100;
2485            return h * 60 + m;
2486        }
2487    }
2488
2489    // date and time from ref 2822 format
2490    function configFromRFC2822(config) {
2491        var match = rfc2822.exec(preprocessRFC2822(config._i)),
2492            parsedArray;
2493        if (match) {
2494            parsedArray = extractFromRFC2822Strings(
2495                match[4],
2496                match[3],
2497                match[2],
2498                match[5],
2499                match[6],
2500                match[7]
2501            );
2502            if (!checkWeekday(match[1], parsedArray, config)) {
2503                return;
2504            }
2505
2506            config._a = parsedArray;
2507            config._tzm = calculateOffset(match[8], match[9], match[10]);
2508
2509            config._d = createUTCDate.apply(null, config._a);
2510            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2511
2512            getParsingFlags(config).rfc2822 = true;
2513        } else {
2514            config._isValid = false;
2515        }
2516    }
2517
2518    // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict
2519    function configFromString(config) {
2520        var matched = aspNetJsonRegex.exec(config._i);
2521        if (matched !== null) {
2522            config._d = new Date(+matched[1]);
2523            return;
2524        }
2525
2526        configFromISO(config);
2527        if (config._isValid === false) {
2528            delete config._isValid;
2529        } else {
2530            return;
2531        }
2532
2533        configFromRFC2822(config);
2534        if (config._isValid === false) {
2535            delete config._isValid;
2536        } else {
2537            return;
2538        }
2539
2540        if (config._strict) {
2541            config._isValid = false;
2542        } else {
2543            // Final attempt, use Input Fallback
2544            hooks.createFromInputFallback(config);
2545        }
2546    }
2547
2548    hooks.createFromInputFallback = deprecate(
2549        'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
2550            'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
2551            'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',
2552        function (config) {
2553            config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
2554        }
2555    );
2556
2557    // Pick the first defined of two or three arguments.
2558    function defaults(a, b, c) {
2559        if (a != null) {
2560            return a;
2561        }
2562        if (b != null) {
2563            return b;
2564        }
2565        return c;
2566    }
2567
2568    function currentDateArray(config) {
2569        // hooks is actually the exported moment object
2570        var nowValue = new Date(hooks.now());
2571        if (config._useUTC) {
2572            return [
2573                nowValue.getUTCFullYear(),
2574                nowValue.getUTCMonth(),
2575                nowValue.getUTCDate(),
2576            ];
2577        }
2578        return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2579    }
2580
2581    // convert an array to a date.
2582    // the array should mirror the parameters below
2583    // note: all values past the year are optional and will default to the lowest possible value.
2584    // [year, month, day , hour, minute, second, millisecond]
2585    function configFromArray(config) {
2586        var i,
2587            date,
2588            input = [],
2589            currentDate,
2590            expectedWeekday,
2591            yearToUse;
2592
2593        if (config._d) {
2594            return;
2595        }
2596
2597        currentDate = currentDateArray(config);
2598
2599        //compute day of the year from weeks and weekdays
2600        if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2601            dayOfYearFromWeekInfo(config);
2602        }
2603
2604        //if the day of the year is set, figure out what it is
2605        if (config._dayOfYear != null) {
2606            yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2607
2608            if (
2609                config._dayOfYear > daysInYear(yearToUse) ||
2610                config._dayOfYear === 0
2611            ) {
2612                getParsingFlags(config)._overflowDayOfYear = true;
2613            }
2614
2615            date = createUTCDate(yearToUse, 0, config._dayOfYear);
2616            config._a[MONTH] = date.getUTCMonth();
2617            config._a[DATE] = date.getUTCDate();
2618        }
2619
2620        // Default to current date.
2621        // * if no year, month, day of month are given, default to today
2622        // * if day of month is given, default month and year
2623        // * if month is given, default only year
2624        // * if year is given, don't default anything
2625        for (i = 0; i < 3 && config._a[i] == null; ++i) {
2626            config._a[i] = input[i] = currentDate[i];
2627        }
2628
2629        // Zero out whatever was not defaulted, including time
2630        for (; i < 7; i++) {
2631            config._a[i] = input[i] =
2632                config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];
2633        }
2634
2635        // Check for 24:00:00.000
2636        if (
2637            config._a[HOUR] === 24 &&
2638            config._a[MINUTE] === 0 &&
2639            config._a[SECOND] === 0 &&
2640            config._a[MILLISECOND] === 0
2641        ) {
2642            config._nextDay = true;
2643            config._a[HOUR] = 0;
2644        }
2645
2646        config._d = (config._useUTC ? createUTCDate : createDate).apply(
2647            null,
2648            input
2649        );
2650        expectedWeekday = config._useUTC
2651            ? config._d.getUTCDay()
2652            : config._d.getDay();
2653
2654        // Apply timezone offset from input. The actual utcOffset can be changed
2655        // with parseZone.
2656        if (config._tzm != null) {
2657            config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
2658        }
2659
2660        if (config._nextDay) {
2661            config._a[HOUR] = 24;
2662        }
2663
2664        // check for mismatching day of week
2665        if (
2666            config._w &&
2667            typeof config._w.d !== 'undefined' &&
2668            config._w.d !== expectedWeekday
2669        ) {
2670            getParsingFlags(config).weekdayMismatch = true;
2671        }
2672    }
2673
2674    function dayOfYearFromWeekInfo(config) {
2675        var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
2676
2677        w = config._w;
2678        if (w.GG != null || w.W != null || w.E != null) {
2679            dow = 1;
2680            doy = 4;
2681
2682            // TODO: We need to take the current isoWeekYear, but that depends on
2683            // how we interpret now (local, utc, fixed offset). So create
2684            // a now version of current config (take local/utc/offset flags, and
2685            // create now).
2686            weekYear = defaults(
2687                w.GG,
2688                config._a[YEAR],
2689                weekOfYear(createLocal(), 1, 4).year
2690            );
2691            week = defaults(w.W, 1);
2692            weekday = defaults(w.E, 1);
2693            if (weekday < 1 || weekday > 7) {
2694                weekdayOverflow = true;
2695            }
2696        } else {
2697            dow = config._locale._week.dow;
2698            doy = config._locale._week.doy;
2699
2700            curWeek = weekOfYear(createLocal(), dow, doy);
2701
2702            weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2703
2704            // Default to current week.
2705            week = defaults(w.w, curWeek.week);
2706
2707            if (w.d != null) {
2708                // weekday -- low day numbers are considered next week
2709                weekday = w.d;
2710                if (weekday < 0 || weekday > 6) {
2711                    weekdayOverflow = true;
2712                }
2713            } else if (w.e != null) {
2714                // local weekday -- counting starts from beginning of week
2715                weekday = w.e + dow;
2716                if (w.e < 0 || w.e > 6) {
2717                    weekdayOverflow = true;
2718                }
2719            } else {
2720                // default to beginning of week
2721                weekday = dow;
2722            }
2723        }
2724        if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
2725            getParsingFlags(config)._overflowWeeks = true;
2726        } else if (weekdayOverflow != null) {
2727            getParsingFlags(config)._overflowWeekday = true;
2728        } else {
2729            temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
2730            config._a[YEAR] = temp.year;
2731            config._dayOfYear = temp.dayOfYear;
2732        }
2733    }
2734
2735    // constant that refers to the ISO standard
2736    hooks.ISO_8601 = function () {};
2737
2738    // constant that refers to the RFC 2822 form
2739    hooks.RFC_2822 = function () {};
2740
2741    // date from string and format string
2742    function configFromStringAndFormat(config) {
2743        // TODO: Move this to another part of the creation flow to prevent circular deps
2744        if (config._f === hooks.ISO_8601) {
2745            configFromISO(config);
2746            return;
2747        }
2748        if (config._f === hooks.RFC_2822) {
2749            configFromRFC2822(config);
2750            return;
2751        }
2752        config._a = [];
2753        getParsingFlags(config).empty = true;
2754
2755        // This array is used to make a Date, either with `new Date` or `Date.UTC`
2756        var string = '' + config._i,
2757            i,
2758            parsedInput,
2759            tokens,
2760            token,
2761            skipped,
2762            stringLength = string.length,
2763            totalParsedInputLength = 0,
2764            era,
2765            tokenLen;
2766
2767        tokens =
2768            expandFormat(config._f, config._locale).match(formattingTokens) || [];
2769        tokenLen = tokens.length;
2770        for (i = 0; i < tokenLen; i++) {
2771            token = tokens[i];
2772            parsedInput = (string.match(getParseRegexForToken(token, config)) ||
2773                [])[0];
2774            if (parsedInput) {
2775                skipped = string.substr(0, string.indexOf(parsedInput));
2776                if (skipped.length > 0) {
2777                    getParsingFlags(config).unusedInput.push(skipped);
2778                }
2779                string = string.slice(
2780                    string.indexOf(parsedInput) + parsedInput.length
2781                );
2782                totalParsedInputLength += parsedInput.length;
2783            }
2784            // don't parse if it's not a known token
2785            if (formatTokenFunctions[token]) {
2786                if (parsedInput) {
2787                    getParsingFlags(config).empty = false;
2788                } else {
2789                    getParsingFlags(config).unusedTokens.push(token);
2790                }
2791                addTimeToArrayFromToken(token, parsedInput, config);
2792            } else if (config._strict && !parsedInput) {
2793                getParsingFlags(config).unusedTokens.push(token);
2794            }
2795        }
2796
2797        // add remaining unparsed input length to the string
2798        getParsingFlags(config).charsLeftOver =
2799            stringLength - totalParsedInputLength;
2800        if (string.length > 0) {
2801            getParsingFlags(config).unusedInput.push(string);
2802        }
2803
2804        // clear _12h flag if hour is <= 12
2805        if (
2806            config._a[HOUR] <= 12 &&
2807            getParsingFlags(config).bigHour === true &&
2808            config._a[HOUR] > 0
2809        ) {
2810            getParsingFlags(config).bigHour = undefined;
2811        }
2812
2813        getParsingFlags(config).parsedDateParts = config._a.slice(0);
2814        getParsingFlags(config).meridiem = config._meridiem;
2815        // handle meridiem
2816        config._a[HOUR] = meridiemFixWrap(
2817            config._locale,
2818            config._a[HOUR],
2819            config._meridiem
2820        );
2821
2822        // handle era
2823        era = getParsingFlags(config).era;
2824        if (era !== null) {
2825            config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);
2826        }
2827
2828        configFromArray(config);
2829        checkOverflow(config);
2830    }
2831
2832    function meridiemFixWrap(locale, hour, meridiem) {
2833        var isPm;
2834
2835        if (meridiem == null) {
2836            // nothing to do
2837            return hour;
2838        }
2839        if (locale.meridiemHour != null) {
2840            return locale.meridiemHour(hour, meridiem);
2841        } else if (locale.isPM != null) {
2842            // Fallback
2843            isPm = locale.isPM(meridiem);
2844            if (isPm && hour < 12) {
2845                hour += 12;
2846            }
2847            if (!isPm && hour === 12) {
2848                hour = 0;
2849            }
2850            return hour;
2851        } else {
2852            // this is not supposed to happen
2853            return hour;
2854        }
2855    }
2856
2857    // date from string and array of format strings
2858    function configFromStringAndArray(config) {
2859        var tempConfig,
2860            bestMoment,
2861            scoreToBeat,
2862            i,
2863            currentScore,
2864            validFormatFound,
2865            bestFormatIsValid = false,
2866            configfLen = config._f.length;
2867
2868        if (configfLen === 0) {
2869            getParsingFlags(config).invalidFormat = true;
2870            config._d = new Date(NaN);
2871            return;
2872        }
2873
2874        for (i = 0; i < configfLen; i++) {
2875            currentScore = 0;
2876            validFormatFound = false;
2877            tempConfig = copyConfig({}, config);
2878            if (config._useUTC != null) {
2879                tempConfig._useUTC = config._useUTC;
2880            }
2881            tempConfig._f = config._f[i];
2882            configFromStringAndFormat(tempConfig);
2883
2884            if (isValid(tempConfig)) {
2885                validFormatFound = true;
2886            }
2887
2888            // if there is any input that was not parsed add a penalty for that format
2889            currentScore += getParsingFlags(tempConfig).charsLeftOver;
2890
2891            //or tokens
2892            currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
2893
2894            getParsingFlags(tempConfig).score = currentScore;
2895
2896            if (!bestFormatIsValid) {
2897                if (
2898                    scoreToBeat == null ||
2899                    currentScore < scoreToBeat ||
2900                    validFormatFound
2901                ) {
2902                    scoreToBeat = currentScore;
2903                    bestMoment = tempConfig;
2904                    if (validFormatFound) {
2905                        bestFormatIsValid = true;
2906                    }
2907                }
2908            } else {
2909                if (currentScore < scoreToBeat) {
2910                    scoreToBeat = currentScore;
2911                    bestMoment = tempConfig;
2912                }
2913            }
2914        }
2915
2916        extend(config, bestMoment || tempConfig);
2917    }
2918
2919    function configFromObject(config) {
2920        if (config._d) {
2921            return;
2922        }
2923
2924        var i = normalizeObjectUnits(config._i),
2925            dayOrDate = i.day === undefined ? i.date : i.day;
2926        config._a = map(
2927            [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],
2928            function (obj) {
2929                return obj && parseInt(obj, 10);
2930            }
2931        );
2932
2933        configFromArray(config);
2934    }
2935
2936    function createFromConfig(config) {
2937        var res = new Moment(checkOverflow(prepareConfig(config)));
2938        if (res._nextDay) {
2939            // Adding is smart enough around DST
2940            res.add(1, 'd');
2941            res._nextDay = undefined;
2942        }
2943
2944        return res;
2945    }
2946
2947    function prepareConfig(config) {
2948        var input = config._i,
2949            format = config._f;
2950
2951        config._locale = config._locale || getLocale(config._l);
2952
2953        if (input === null || (format === undefined && input === '')) {
2954            return createInvalid({ nullInput: true });
2955        }
2956
2957        if (typeof input === 'string') {
2958            config._i = input = config._locale.preparse(input);
2959        }
2960
2961        if (isMoment(input)) {
2962            return new Moment(checkOverflow(input));
2963        } else if (isDate(input)) {
2964            config._d = input;
2965        } else if (isArray(format)) {
2966            configFromStringAndArray(config);
2967        } else if (format) {
2968            configFromStringAndFormat(config);
2969        } else {
2970            configFromInput(config);
2971        }
2972
2973        if (!isValid(config)) {
2974            config._d = null;
2975        }
2976
2977        return config;
2978    }
2979
2980    function configFromInput(config) {
2981        var input = config._i;
2982        if (isUndefined(input)) {
2983            config._d = new Date(hooks.now());
2984        } else if (isDate(input)) {
2985            config._d = new Date(input.valueOf());
2986        } else if (typeof input === 'string') {
2987            configFromString(config);
2988        } else if (isArray(input)) {
2989            config._a = map(input.slice(0), function (obj) {
2990                return parseInt(obj, 10);
2991            });
2992            configFromArray(config);
2993        } else if (isObject(input)) {
2994            configFromObject(config);
2995        } else if (isNumber(input)) {
2996            // from milliseconds
2997            config._d = new Date(input);
2998        } else {
2999            hooks.createFromInputFallback(config);
3000        }
3001    }
3002
3003    function createLocalOrUTC(input, format, locale, strict, isUTC) {
3004        var c = {};
3005
3006        if (format === true || format === false) {
3007            strict = format;
3008            format = undefined;
3009        }
3010
3011        if (locale === true || locale === false) {
3012            strict = locale;
3013            locale = undefined;
3014        }
3015
3016        if (
3017            (isObject(input) && isObjectEmpty(input)) ||
3018            (isArray(input) && input.length === 0)
3019        ) {
3020            input = undefined;
3021        }
3022        // object construction must be done this way.
3023        // https://github.com/moment/moment/issues/1423
3024        c._isAMomentObject = true;
3025        c._useUTC = c._isUTC = isUTC;
3026        c._l = locale;
3027        c._i = input;
3028        c._f = format;
3029        c._strict = strict;
3030
3031        return createFromConfig(c);
3032    }
3033
3034    function createLocal(input, format, locale, strict) {
3035        return createLocalOrUTC(input, format, locale, strict, false);
3036    }
3037
3038    var prototypeMin = deprecate(
3039            'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',
3040            function () {
3041                var other = createLocal.apply(null, arguments);
3042                if (this.isValid() && other.isValid()) {
3043                    return other < this ? this : other;
3044                } else {
3045                    return createInvalid();
3046                }
3047            }
3048        ),
3049        prototypeMax = deprecate(
3050            'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',
3051            function () {
3052                var other = createLocal.apply(null, arguments);
3053                if (this.isValid() && other.isValid()) {
3054                    return other > this ? this : other;
3055                } else {
3056                    return createInvalid();
3057                }
3058            }
3059        );
3060
3061    // Pick a moment m from moments so that m[fn](other) is true for all
3062    // other. This relies on the function fn to be transitive.
3063    //
3064    // moments should either be an array of moment objects or an array, whose
3065    // first element is an array of moment objects.
3066    function pickBy(fn, moments) {
3067        var res, i;
3068        if (moments.length === 1 && isArray(moments[0])) {
3069            moments = moments[0];
3070        }
3071        if (!moments.length) {
3072            return createLocal();
3073        }
3074        res = moments[0];
3075        for (i = 1; i < moments.length; ++i) {
3076            if (!moments[i].isValid() || moments[i][fn](res)) {
3077                res = moments[i];
3078            }
3079        }
3080        return res;
3081    }
3082
3083    // TODO: Use [].sort instead?
3084    function min() {
3085        var args = [].slice.call(arguments, 0);
3086
3087        return pickBy('isBefore', args);
3088    }
3089
3090    function max() {
3091        var args = [].slice.call(arguments, 0);
3092
3093        return pickBy('isAfter', args);
3094    }
3095
3096    var now = function () {
3097        return Date.now ? Date.now() : +new Date();
3098    };
3099
3100    var ordering = [
3101        'year',
3102        'quarter',
3103        'month',
3104        'week',
3105        'day',
3106        'hour',
3107        'minute',
3108        'second',
3109        'millisecond',
3110    ];
3111
3112    function isDurationValid(m) {
3113        var key,
3114            unitHasDecimal = false,
3115            i,
3116            orderLen = ordering.length;
3117        for (key in m) {
3118            if (
3119                hasOwnProp(m, key) &&
3120                !(
3121                    indexOf.call(ordering, key) !== -1 &&
3122                    (m[key] == null || !isNaN(m[key]))
3123                )
3124            ) {
3125                return false;
3126            }
3127        }
3128
3129        for (i = 0; i < orderLen
vendor: 10,251 bytes, lines 3129-3454
3129; ++i) {
3130            if (m[ordering[i]]) {
3131                if (unitHasDecimal) {
3132                    return false; // only allow non-integers for smallest unit
3133                }
3134                if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {
3135                    unitHasDecimal = true;
3136                }
3137            }
3138        }
3139
3140        return true;
3141    }
3142
3143    function isValid$1() {
3144        return this._isValid;
3145    }
3146
3147    function createInvalid$1() {
3148        return createDuration(NaN);
3149    }
3150
3151    function Duration(duration) {
3152        var normalizedInput = normalizeObjectUnits(duration),
3153            years = normalizedInput.year || 0,
3154            quarters = normalizedInput.quarter || 0,
3155            months = normalizedInput.month || 0,
3156            weeks = normalizedInput.week || normalizedInput.isoWeek || 0,
3157            days = normalizedInput.day || 0,
3158            hours = normalizedInput.hour || 0,
3159            minutes = normalizedInput.minute || 0,
3160            seconds = normalizedInput.second || 0,
3161            milliseconds = normalizedInput.millisecond || 0;
3162
3163        this._isValid = isDurationValid(normalizedInput);
3164
3165        // representation for dateAddRemove
3166        this._milliseconds =
3167            +milliseconds +
3168            seconds * 1e3 + // 1000
3169            minutes * 6e4 + // 1000 * 60
3170            hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978
3171        // Because of dateAddRemove treats 24 hours as different from a
3172        // day when working around DST, we need to store them separately
3173        this._days = +days + weeks * 7;
3174        // It is impossible to translate months into days without knowing
3175        // which months you are are talking about, so we have to store
3176        // it separately.
3177        this._months = +months + quarters * 3 + years * 12;
3178
3179        this._data = {};
3180
3181        this._locale = getLocale();
3182
3183        this._bubble();
3184    }
3185
3186    function isDuration(obj) {
3187        return obj instanceof Duration;
3188    }
3189
3190    function absRound(number) {
3191        if (number < 0) {
3192            return Math.round(-1 * number) * -1;
3193        } else {
3194            return Math.round(number);
3195        }
3196    }
3197
3198    // compare two arrays, return the number of differences
3199    function compareArrays(array1, array2, dontConvert) {
3200        var len = Math.min(array1.length, array2.length),
3201            lengthDiff = Math.abs(array1.length - array2.length),
3202            diffs = 0,
3203            i;
3204        for (i = 0; i < len; i++) {
3205            if (
3206                (dontConvert && array1[i] !== array2[i]) ||
3207                (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))
3208            ) {
3209                diffs++;
3210            }
3211        }
3212        return diffs + lengthDiff;
3213    }
3214
3215    // FORMATTING
3216
3217    function offset(token, separator) {
3218        addFormatToken(token, 0, 0, function () {
3219            var offset = this.utcOffset(),
3220                sign = '+';
3221            if (offset < 0) {
3222                offset = -offset;
3223                sign = '-';
3224            }
3225            return (
3226                sign +
3227                zeroFill(~~(offset / 60), 2) +
3228                separator +
3229                zeroFill(~~offset % 60, 2)
3230            );
3231        });
3232    }
3233
3234    offset('Z', ':');
3235    offset('ZZ', '');
3236
3237    // PARSING
3238
3239    addRegexToken('Z', matchShortOffset);
3240    addRegexToken('ZZ', matchShortOffset);
3241    addParseToken(['Z', 'ZZ'], function (input, array, config) {
3242        config._useUTC = true;
3243        config._tzm = offsetFromString(matchShortOffset, input);
3244    });
3245
3246    // HELPERS
3247
3248    // timezone chunker
3249    // '+10:00' > ['10',  '00']
3250    // '-1530'  > ['-15', '30']
3251    var chunkOffset = /([\+\-]|\d\d)/gi;
3252
3253    function offsetFromString(matcher, string) {
3254        var matches = (string || '').match(matcher),
3255            chunk,
3256            parts,
3257            minutes;
3258
3259        if (matches === null) {
3260            return null;
3261        }
3262
3263        chunk = matches[matches.length - 1] || [];
3264        parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
3265        minutes = +(parts[1] * 60) + toInt(parts[2]);
3266
3267        return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
3268    }
3269
3270    // Return a moment from input, that is local/utc/zone equivalent to model.
3271    function cloneWithOffset(input, model) {
3272        var res, diff;
3273        if (model._isUTC) {
3274            res = model.clone();
3275            diff =
3276                (isMoment(input) || isDate(input)
3277                    ? input.valueOf()
3278                    : createLocal(input).valueOf()) - res.valueOf();
3279            // Use low-level api, because this fn is low-level api.
3280            res._d.setTime(res._d.valueOf() + diff);
3281            hooks.updateOffset(res, false);
3282            return res;
3283        } else {
3284            return createLocal(input).local();
3285        }
3286    }
3287
3288    function getDateOffset(m) {
3289        // On Firefox.24 Date#getTimezoneOffset returns a floating point.
3290        // https://github.com/moment/moment/pull/1871
3291        return -Math.round(m._d.getTimezoneOffset());
3292    }
3293
3294    // HOOKS
3295
3296    // This function will be called whenever a moment is mutated.
3297    // It is intended to keep the offset in sync with the timezone.
3298    hooks.updateOffset = function () {};
3299
3300    // MOMENTS
3301
3302    // keepLocalTime = true means only change the timezone, without
3303    // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
3304    // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
3305    // +0200, so we adjust the time as needed, to be valid.
3306    //
3307    // Keeping the time actually adds/subtracts (one hour)
3308    // from the actual represented time. That is why we call updateOffset
3309    // a second time. In case it wants us to change the offset again
3310    // _changeInProgress == true case, then we have to adjust, because
3311    // there is no such time in the given timezone.
3312    function getSetOffset(input, keepLocalTime, keepMinutes) {
3313        var offset = this._offset || 0,
3314            localAdjust;
3315        if (!this.isValid()) {
3316            return input != null ? this : NaN;
3317        }
3318        if (input != null) {
3319            if (typeof input === 'string') {
3320                input = offsetFromString(matchShortOffset, input);
3321                if (input === null) {
3322                    return this;
3323                }
3324            } else if (Math.abs(input) < 16 && !keepMinutes) {
3325                input = input * 60;
3326            }
3327            if (!this._isUTC && keepLocalTime) {
3328                localAdjust = getDateOffset(this);
3329            }
3330            this._offset = input;
3331            this._isUTC = true;
3332            if (localAdjust != null) {
3333                this.add(localAdjust, 'm');
3334            }
3335            if (offset !== input) {
3336                if (!keepLocalTime || this._changeInProgress) {
3337                    addSubtract(
3338                        this,
3339                        createDuration(input - offset, 'm'),
3340                        1,
3341                        false
3342                    );
3343                } else if (!this._changeInProgress) {
3344                    this._changeInProgress = true;
3345                    hooks.updateOffset(this, true);
3346                    this._changeInProgress = null;
3347                }
3348            }
3349            return this;
3350        } else {
3351            return this._isUTC ? offset : getDateOffset(this);
3352        }
3353    }
3354
3355    function getSetZone(input, keepLocalTime) {
3356        if (input != null) {
3357            if (typeof input !== 'string') {
3358                input = -input;
3359            }
3360
3361            this.utcOffset(input, keepLocalTime);
3362
3363            return this;
3364        } else {
3365            return -this.utcOffset();
3366        }
3367    }
3368
3369    function setOffsetToUTC(keepLocalTime) {
3370        return this.utcOffset(0, keepLocalTime);
3371    }
3372
3373    function setOffsetToLocal(keepLocalTime) {
3374        if (this._isUTC) {
3375            this.utcOffset(0, keepLocalTime);
3376            this._isUTC = false;
3377
3378            if (keepLocalTime) {
3379                this.subtract(getDateOffset(this), 'm');
3380            }
3381        }
3382        return this;
3383    }
3384
3385    function setOffsetToParsedOffset() {
3386        if (this._tzm != null) {
3387            this.utcOffset(this._tzm, false, true);
3388        } else if (typeof this._i === 'string') {
3389            var tZone = offsetFromString(matchOffset, this._i);
3390            if (tZone != null) {
3391                this.utcOffset(tZone);
3392            } else {
3393                this.utcOffset(0, true);
3394            }
3395        }
3396        return this;
3397    }
3398
3399    function hasAlignedHourOffset(input) {
3400        if (!this.isValid()) {
3401            return false;
3402        }
3403        input = input ? createLocal(input).utcOffset() : 0;
3404
3405        return (this.utcOffset() - input) % 60 === 0;
3406    }
3407
3408    function isDaylightSavingTime() {
3409        return (
3410            this.utcOffset() > this.clone().month(0).utcOffset() ||
3411            this.utcOffset() > this.clone().month(5).utcOffset()
3412        );
3413    }
3414
3415    function isDaylightSavingTimeShifted() {
3416        if (!isUndefined(this._isDSTShifted)) {
3417            return this._isDSTShifted;
3418        }
3419
3420        var c = {},
3421            other;
3422
3423        copyConfig(c, this);
3424        c = prepareConfig(c);
3425
3426        if (c._a) {
3427            other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
3428            this._isDSTShifted =
3429                this.isValid() && compareArrays(c._a, other.toArray()) > 0;
3430        } else {
3431            this._isDSTShifted = false;
3432        }
3433
3434        return this._isDSTShifted;
3435    }
3436
3437    function isLocal() {
3438        return this.isValid() ? !this._isUTC : false;
3439    }
3440
3441    function isUtcOffset() {
3442        return this.isValid() ? this._isUTC : false;
3443    }
3444
3445    function isUtc() {
3446        return this.isValid() ? this._isUTC && this._offset === 0 : false;
3447    }
3448
3449    // ASP.NET json date format regex
3450    var aspNetRegex = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,
3451        // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
3452        // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
3453        // and further modified to allow for strings containing both week and day
3454        isoRegex =
vendor: 9,021 bytes, lines 3454-3744
3454
3455            /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;
3456
3457    function createDuration(input, key) {
3458        var duration = input,
3459            // matching against regexp is expensive, do it on demand
3460            match = null,
3461            sign,
3462            ret,
3463            diffRes;
3464
3465        if (isDuration(input)) {
3466            duration = {
3467                ms: input._milliseconds,
3468                d: input._days,
3469                M: input._months,
3470            };
3471        } else if (isNumber(input) || !isNaN(+input)) {
3472            duration = {};
3473            if (key) {
3474                duration[key] = +input;
3475            } else {
3476                duration.milliseconds = +input;
3477            }
3478        } else if ((match = aspNetRegex.exec(input))) {
3479            sign = match[1] === '-' ? -1 : 1;
3480            duration = {
3481                y: 0,
3482                d: toInt(match[DATE]) * sign,
3483                h: toInt(match[HOUR]) * sign,
3484                m: toInt(match[MINUTE]) * sign,
3485                s: toInt(match[SECOND]) * sign,
3486                ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match
3487            };
3488        } else if ((match = isoRegex.exec(input))) {
3489            sign = match[1] === '-' ? -1 : 1;
3490            duration = {
3491                y: parseIso(match[2], sign),
3492                M: parseIso(match[3], sign),
3493                w: parseIso(match[4], sign),
3494                d: parseIso(match[5], sign),
3495                h: parseIso(match[6], sign),
3496                m: parseIso(match[7], sign),
3497                s: parseIso(match[8], sign),
3498            };
3499        } else if (duration == null) {
3500            // checks for null or undefined
3501            duration = {};
3502        } else if (
3503            typeof duration === 'object' &&
3504            ('from' in duration || 'to' in duration)
3505        ) {
3506            diffRes = momentsDifference(
3507                createLocal(duration.from),
3508                createLocal(duration.to)
3509            );
3510
3511            duration = {};
3512            duration.ms = diffRes.milliseconds;
3513            duration.M = diffRes.months;
3514        }
3515
3516        ret = new Duration(duration);
3517
3518        if (isDuration(input) && hasOwnProp(input, '_locale')) {
3519            ret._locale = input._locale;
3520        }
3521
3522        if (isDuration(input) && hasOwnProp(input, '_isValid')) {
3523            ret._isValid = input._isValid;
3524        }
3525
3526        return ret;
3527    }
3528
3529    createDuration.fn = Duration.prototype;
3530    createDuration.invalid = createInvalid$1;
3531
3532    function parseIso(inp, sign) {
3533        // We'd normally use ~~inp for this, but unfortunately it also
3534        // converts floats to ints.
3535        // inp may be undefined, so careful calling replace on it.
3536        var res = inp && parseFloat(inp.replace(',', '.'));
3537        // apply sign while we're at it
3538        return (isNaN(res) ? 0 : res) * sign;
3539    }
3540
3541    function positiveMomentsDifference(base, other) {
3542        var res = {};
3543
3544        res.months =
3545            other.month() - base.month() + (other.year() - base.year()) * 12;
3546        if (base.clone().add(res.months, 'M').isAfter(other)) {
3547            --res.months;
3548        }
3549
3550        res.milliseconds = +other - +base.clone().add(res.months, 'M');
3551
3552        return res;
3553    }
3554
3555    function momentsDifference(base, other) {
3556        var res;
3557        if (!(base.isValid() && other.isValid())) {
3558            return { milliseconds: 0, months: 0 };
3559        }
3560
3561        other = cloneWithOffset(other, base);
3562        if (base.isBefore(other)) {
3563            res = positiveMomentsDifference(base, other);
3564        } else {
3565            res = positiveMomentsDifference(other, base);
3566            res.milliseconds = -res.milliseconds;
3567            res.months = -res.months;
3568        }
3569
3570        return res;
3571    }
3572
3573    // TODO: remove 'name' arg after deprecation is removed
3574    function createAdder(direction, name) {
3575        return function (val, period) {
3576            var dur, tmp;
3577            //invert the arguments, but complain about it
3578            if (period !== null && !isNaN(+period)) {
3579                deprecateSimple(
3580                    name,
3581                    'moment().' +
3582                        name +
3583                        '(period, number) is deprecated. Please use moment().' +
3584                        name +
3585                        '(number, period). ' +
3586                        'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'
3587                );
3588                tmp = val;
3589                val = period;
3590                period = tmp;
3591            }
3592
3593            dur = createDuration(val, period);
3594            addSubtract(this, dur, direction);
3595            return this;
3596        };
3597    }
3598
3599    function addSubtract(mom, duration, isAdding, updateOffset) {
3600        var milliseconds = duration._milliseconds,
3601            days = absRound(duration._days),
3602            months = absRound(duration._months);
3603
3604        if (!mom.isValid()) {
3605            // No op
3606            return;
3607        }
3608
3609        updateOffset = updateOffset == null ? true : updateOffset;
3610
3611        if (months) {
3612            setMonth(mom, get(mom, 'Month') + months * isAdding);
3613        }
3614        if (days) {
3615            set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3616        }
3617        if (milliseconds) {
3618            mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
3619        }
3620        if (updateOffset) {
3621            hooks.updateOffset(mom, days || months);
3622        }
3623    }
3624
3625    var add = createAdder(1, 'add'),
3626        subtract = createAdder(-1, 'subtract');
3627
3628    function isString(input) {
3629        return typeof input === 'string' || input instanceof String;
3630    }
3631
3632    // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined
3633    function isMomentInput(input) {
3634        return (
3635            isMoment(input) ||
3636            isDate(input) ||
3637            isString(input) ||
3638            isNumber(input) ||
3639            isNumberOrStringArray(input) ||
3640            isMomentInputObject(input) ||
3641            input === null ||
3642            input === undefined
3643        );
3644    }
3645
3646    function isMomentInputObject(input) {
3647        var objectTest = isObject(input) && !isObjectEmpty(input),
3648            propertyTest = false,
3649            properties = [
3650                'years',
3651                'year',
3652                'y',
3653                'months',
3654                'month',
3655                'M',
3656                'days',
3657                'day',
3658                'd',
3659                'dates',
3660                'date',
3661                'D',
3662                'hours',
3663                'hour',
3664                'h',
3665                'minutes',
3666                'minute',
3667                'm',
3668                'seconds',
3669                'second',
3670                's',
3671                'milliseconds',
3672                'millisecond',
3673                'ms',
3674            ],
3675            i,
3676            property,
3677            propertyLen = properties.length;
3678
3679        for (i = 0; i < propertyLen; i += 1) {
3680            property = properties[i];
3681            propertyTest = propertyTest || hasOwnProp(input, property);
3682        }
3683
3684        return objectTest && propertyTest;
3685    }
3686
3687    function isNumberOrStringArray(input) {
3688        var arrayTest = isArray(input),
3689            dataTypeTest = false;
3690        if (arrayTest) {
3691            dataTypeTest =
3692                input.filter(function (item) {
3693                    return !isNumber(item) && isString(input);
3694                }).length === 0;
3695        }
3696        return arrayTest && dataTypeTest;
3697    }
3698
3699    function isCalendarSpec(input) {
3700        var objectTest = isObject(input) && !isObjectEmpty(input),
3701            propertyTest = false,
3702            properties = [
3703                'sameDay',
3704                'nextDay',
3705                'lastDay',
3706                'nextWeek',
3707                'lastWeek',
3708                'sameElse',
3709            ],
3710            i,
3711            property;
3712
3713        for (i = 0; i < properties.length; i += 1) {
3714            property = properties[i];
3715            propertyTest = propertyTest || hasOwnProp(input, property);
3716        }
3717
3718        return objectTest && propertyTest;
3719    }
3720
3721    function getCalendarFormat(myMoment, now) {
3722        var diff = myMoment.diff(now, 'days', true);
3723        return diff < -6
3724            ? 'sameElse'
3725            : diff < -1
3726            ? 'lastWeek'
3727            : diff < 0
3728            ? 'lastDay'
3729            : diff < 1
3730            ? 'sameDay'
3731            : diff < 2
3732            ? 'nextDay'
3733            : diff < 7
3734            ? 'nextWeek'
3735            : 'sameElse';
3736    }
3737
3738    function calendar$1(time, formats) {
3739        // Support for single parameter, formats only overload to the calendar function
3740        if (arguments.length === 1) {
3741            if (!arguments[0]) {
3742                time = undefined;
3743                formats = undefined;
3744            } else
vendor: 17,627 bytes, lines 3744-4302
3744 if (isMomentInput(arguments[0])) {
3745                time = arguments[0];
3746                formats = undefined;
3747            } else if (isCalendarSpec(arguments[0])) {
3748                formats = arguments[0];
3749                time = undefined;
3750            }
3751        }
3752        // We want to compare the start of today, vs this.
3753        // Getting start-of-today depends on whether we're local/utc/offset or not.
3754        var now = time || createLocal(),
3755            sod = cloneWithOffset(now, this).startOf('day'),
3756            format = hooks.calendarFormat(this, sod) || 'sameElse',
3757            output =
3758                formats &&
3759                (isFunction(formats[format])
3760                    ? formats[format].call(this, now)
3761                    : formats[format]);
3762
3763        return this.format(
3764            output || this.localeData().calendar(format, this, createLocal(now))
3765        );
3766    }
3767
3768    function clone() {
3769        return new Moment(this);
3770    }
3771
3772    function isAfter(input, units) {
3773        var localInput = isMoment(input) ? input : createLocal(input);
3774        if (!(this.isValid() && localInput.isValid())) {
3775            return false;
3776        }
3777        units = normalizeUnits(units) || 'millisecond';
3778        if (units === 'millisecond') {
3779            return this.valueOf() > localInput.valueOf();
3780        } else {
3781            return localInput.valueOf() < this.clone().startOf(units).valueOf();
3782        }
3783    }
3784
3785    function isBefore(input, units) {
3786        var localInput = isMoment(input) ? input : createLocal(input);
3787        if (!(this.isValid() && localInput.isValid())) {
3788            return false;
3789        }
3790        units = normalizeUnits(units) || 'millisecond';
3791        if (units === 'millisecond') {
3792            return this.valueOf() < localInput.valueOf();
3793        } else {
3794            return this.clone().endOf(units).valueOf() < localInput.valueOf();
3795        }
3796    }
3797
3798    function isBetween(from, to, units, inclusivity) {
3799        var localFrom = isMoment(from) ? from : createLocal(from),
3800            localTo = isMoment(to) ? to : createLocal(to);
3801        if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {
3802            return false;
3803        }
3804        inclusivity = inclusivity || '()';
3805        return (
3806            (inclusivity[0] === '('
3807                ? this.isAfter(localFrom, units)
3808                : !this.isBefore(localFrom, units)) &&
3809            (inclusivity[1] === ')'
3810                ? this.isBefore(localTo, units)
3811                : !this.isAfter(localTo, units))
3812        );
3813    }
3814
3815    function isSame(input, units) {
3816        var localInput = isMoment(input) ? input : createLocal(input),
3817            inputMs;
3818        if (!(this.isValid() && localInput.isValid())) {
3819            return false;
3820        }
3821        units = normalizeUnits(units) || 'millisecond';
3822        if (units === 'millisecond') {
3823            return this.valueOf() === localInput.valueOf();
3824        } else {
3825            inputMs = localInput.valueOf();
3826            return (
3827                this.clone().startOf(units).valueOf() <= inputMs &&
3828                inputMs <= this.clone().endOf(units).valueOf()
3829            );
3830        }
3831    }
3832
3833    function isSameOrAfter(input, units) {
3834        return this.isSame(input, units) || this.isAfter(input, units);
3835    }
3836
3837    function isSameOrBefore(input, units) {
3838        return this.isSame(input, units) || this.isBefore(input, units);
3839    }
3840
3841    function diff(input, units, asFloat) {
3842        var that, zoneDelta, output;
3843
3844        if (!this.isValid()) {
3845            return NaN;
3846        }
3847
3848        that = cloneWithOffset(input, this);
3849
3850        if (!that.isValid()) {
3851            return NaN;
3852        }
3853
3854        zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;
3855
3856        units = normalizeUnits(units);
3857
3858        switch (units) {
3859            case 'year':
3860                output = monthDiff(this, that) / 12;
3861                break;
3862            case 'month':
3863                output = monthDiff(this, that);
3864                break;
3865            case 'quarter':
3866                output = monthDiff(this, that) / 3;
3867                break;
3868            case 'second':
3869                output = (this - that) / 1e3;
3870                break; // 1000
3871            case 'minute':
3872                output = (this - that) / 6e4;
3873                break; // 1000 * 60
3874            case 'hour':
3875                output = (this - that) / 36e5;
3876                break; // 1000 * 60 * 60
3877            case 'day':
3878                output = (this - that - zoneDelta) / 864e5;
3879                break; // 1000 * 60 * 60 * 24, negate dst
3880            case 'week':
3881                output = (this - that - zoneDelta) / 6048e5;
3882                break; // 1000 * 60 * 60 * 24 * 7, negate dst
3883            default:
3884                output = this - that;
3885        }
3886
3887        return asFloat ? output : absFloor(output);
3888    }
3889
3890    function monthDiff(a, b) {
3891        if (a.date() < b.date()) {
3892            // end-of-month calculations work correct when the start month has more
3893            // days than the end month.
3894            return -monthDiff(b, a);
3895        }
3896        // difference in months
3897        var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),
3898            // b is in (anchor - 1 month, anchor + 1 month)
3899            anchor = a.clone().add(wholeMonthDiff, 'months'),
3900            anchor2,
3901            adjust;
3902
3903        if (b - anchor < 0) {
3904            anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');
3905            // linear across the month
3906            adjust = (b - anchor) / (anchor - anchor2);
3907        } else {
3908            anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');
3909            // linear across the month
3910            adjust = (b - anchor) / (anchor2 - anchor);
3911        }
3912
3913        //check for negative zero, return zero if negative zero
3914        return -(wholeMonthDiff + adjust) || 0;
3915    }
3916
3917    hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';
3918    hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';
3919
3920    function toString() {
3921        return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3922    }
3923
3924    function toISOString(keepOffset) {
3925        if (!this.isValid()) {
3926            return null;
3927        }
3928        var utc = keepOffset !== true,
3929            m = utc ? this.clone().utc() : this;
3930        if (m.year() < 0 || m.year() > 9999) {
3931            return formatMoment(
3932                m,
3933                utc
3934                    ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'
3935                    : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'
3936            );
3937        }
3938        if (isFunction(Date.prototype.toISOString)) {
3939            // native implementation is ~50x faster, use it when we can
3940            if (utc) {
3941                return this.toDate().toISOString();
3942            } else {
3943                return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)
3944                    .toISOString()
3945                    .replace('Z', formatMoment(m, 'Z'));
3946            }
3947        }
3948        return formatMoment(
3949            m,
3950            utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'
3951        );
3952    }
3953
3954    /**
3955     * Return a human readable representation of a moment that can
3956     * also be evaluated to get a new moment which is the same
3957     *
3958     * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects
3959     */
3960    function inspect() {
3961        if (!this.isValid()) {
3962            return 'moment.invalid(/* ' + this._i + ' */)';
3963        }
3964        var func = 'moment',
3965            zone = '',
3966            prefix,
3967            year,
3968            datetime,
3969            suffix;
3970        if (!this.isLocal()) {
3971            func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';
3972            zone = 'Z';
3973        }
3974        prefix = '[' + func + '("]';
3975        year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';
3976        datetime = '-MM-DD[T]HH:mm:ss.SSS';
3977        suffix = zone + '[")]';
3978
3979        return this.format(prefix + year + datetime + suffix);
3980    }
3981
3982    function format(inputString) {
3983        if (!inputString) {
3984            inputString = this.isUtc()
3985                ? hooks.defaultFormatUtc
3986                : hooks.defaultFormat;
3987        }
3988        var output = formatMoment(this, inputString);
3989        return this.localeData().postformat(output);
3990    }
3991
3992    function from(time, withoutSuffix) {
3993        if (
3994            this.isValid() &&
3995            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
3996        ) {
3997            return createDuration({ to: this, from: time })
3998                .locale(this.locale())
3999                .humanize(!withoutSuffix);
4000        } else {
4001            return this.localeData().invalidDate();
4002        }
4003    }
4004
4005    function fromNow(withoutSuffix) {
4006        return this.from(createLocal(), withoutSuffix);
4007    }
4008
4009    function to(time, withoutSuffix) {
4010        if (
4011            this.isValid() &&
4012            ((isMoment(time) && time.isValid()) || createLocal(time).isValid())
4013        ) {
4014            return createDuration({ from: this, to: time })
4015                .locale(this.locale())
4016                .humanize(!withoutSuffix);
4017        } else {
4018            return this.localeData().invalidDate();
4019        }
4020    }
4021
4022    function toNow(withoutSuffix) {
4023        return this.to(createLocal(), withoutSuffix);
4024    }
4025
4026    // If passed a locale key, it will set the locale for this
4027    // instance.  Otherwise, it will return the locale configuration
4028    // variables for this instance.
4029    function locale(key) {
4030        var newLocaleData;
4031
4032        if (key === undefined) {
4033            return this._locale._abbr;
4034        } else {
4035            newLocaleData = getLocale(key);
4036            if (newLocaleData != null) {
4037                this._locale = newLocaleData;
4038            }
4039            return this;
4040        }
4041    }
4042
4043    var lang = deprecate(
4044        'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',
4045        function (key) {
4046            if (key === undefined) {
4047                return this.localeData();
4048            } else {
4049                return this.locale(key);
4050            }
4051        }
4052    );
4053
4054    function localeData() {
4055        return this._locale;
4056    }
4057
4058    var MS_PER_SECOND = 1000,
4059        MS_PER_MINUTE = 60 * MS_PER_SECOND,
4060        MS_PER_HOUR = 60 * MS_PER_MINUTE,
4061        MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
4062
4063    // actual modulo - handles negative numbers (for dates before 1970):
4064    function mod$1(dividend, divisor) {
4065        return ((dividend % divisor) + divisor) % divisor;
4066    }
4067
4068    function localStartOfDate(y, m, d) {
4069        // the date constructor remaps years 0-99 to 1900-1999
4070        if (y < 100 && y >= 0) {
4071            // preserve leap years using a full 400 year cycle, then reset
4072            return new Date(y + 400, m, d) - MS_PER_400_YEARS;
4073        } else {
4074            return new Date(y, m, d).valueOf();
4075        }
4076    }
4077
4078    function utcStartOfDate(y, m, d) {
4079        // Date.UTC remaps years 0-99 to 1900-1999
4080        if (y < 100 && y >= 0) {
4081            // preserve leap years using a full 400 year cycle, then reset
4082            return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;
4083        } else {
4084            return Date.UTC(y, m, d);
4085        }
4086    }
4087
4088    function startOf(units) {
4089        var time, startOfDate;
4090        units = normalizeUnits(units);
4091        if (units === undefined || units === 'millisecond' || !this.isValid()) {
4092            return this;
4093        }
4094
4095        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4096
4097        switch (units) {
4098            case 'year':
4099                time = startOfDate(this.year(), 0, 1);
4100                break;
4101            case 'quarter':
4102                time = startOfDate(
4103                    this.year(),
4104                    this.month() - (this.month() % 3),
4105                    1
4106                );
4107                break;
4108            case 'month':
4109                time = startOfDate(this.year(), this.month(), 1);
4110                break;
4111            case 'week':
4112                time = startOfDate(
4113                    this.year(),
4114                    this.month(),
4115                    this.date() - this.weekday()
4116                );
4117                break;
4118            case 'isoWeek':
4119                time = startOfDate(
4120                    this.year(),
4121                    this.month(),
4122                    this.date() - (this.isoWeekday() - 1)
4123                );
4124                break;
4125            case 'day':
4126            case 'date':
4127                time = startOfDate(this.year(), this.month(), this.date());
4128                break;
4129            case 'hour':
4130                time = this._d.valueOf();
4131                time -= mod$1(
4132                    time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4133                    MS_PER_HOUR
4134                );
4135                break;
4136            case 'minute':
4137                time = this._d.valueOf();
4138                time -= mod$1(time, MS_PER_MINUTE);
4139                break;
4140            case 'second':
4141                time = this._d.valueOf();
4142                time -= mod$1(time, MS_PER_SECOND);
4143                break;
4144        }
4145
4146        this._d.setTime(time);
4147        hooks.updateOffset(this, true);
4148        return this;
4149    }
4150
4151    function endOf(units) {
4152        var time, startOfDate;
4153        units = normalizeUnits(units);
4154        if (units === undefined || units === 'millisecond' || !this.isValid()) {
4155            return this;
4156        }
4157
4158        startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;
4159
4160        switch (units) {
4161            case 'year':
4162                time = startOfDate(this.year() + 1, 0, 1) - 1;
4163                break;
4164            case 'quarter':
4165                time =
4166                    startOfDate(
4167                        this.year(),
4168                        this.month() - (this.month() % 3) + 3,
4169                        1
4170                    ) - 1;
4171                break;
4172            case 'month':
4173                time = startOfDate(this.year(), this.month() + 1, 1) - 1;
4174                break;
4175            case 'week':
4176                time =
4177                    startOfDate(
4178                        this.year(),
4179                        this.month(),
4180                        this.date() - this.weekday() + 7
4181                    ) - 1;
4182                break;
4183            case 'isoWeek':
4184                time =
4185                    startOfDate(
4186                        this.year(),
4187                        this.month(),
4188                        this.date() - (this.isoWeekday() - 1) + 7
4189                    ) - 1;
4190                break;
4191            case 'day':
4192            case 'date':
4193                time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;
4194                break;
4195            case 'hour':
4196                time = this._d.valueOf();
4197                time +=
4198                    MS_PER_HOUR -
4199                    mod$1(
4200                        time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4201                        MS_PER_HOUR
4202                    ) -
4203                    1;
4204                break;
4205            case 'minute':
4206                time = this._d.valueOf();
4207                time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
4208                break;
4209            case 'second':
4210                time = this._d.valueOf();
4211                time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
4212                break;
4213        }
4214
4215        this._d.setTime(time);
4216        hooks.updateOffset(this, true);
4217        return this;
4218    }
4219
4220    function valueOf() {
4221        return this._d.valueOf() - (this._offset || 0) * 60000;
4222    }
4223
4224    function unix() {
4225        return Math.floor(this.valueOf() / 1000);
4226    }
4227
4228    function toDate() {
4229        return new Date(this.valueOf());
4230    }
4231
4232    function toArray() {
4233        var m = this;
4234        return [
4235            m.year(),
4236            m.month(),
4237            m.date(),
4238            m.hour(),
4239            m.minute(),
4240            m.second(),
4241            m.millisecond(),
4242        ];
4243    }
4244
4245    function toObject() {
4246        var m = this;
4247        return {
4248            years: m.year(),
4249            months: m.month(),
4250            date: m.date(),
4251            hours: m.hours(),
4252            minutes: m.minutes(),
4253            seconds: m.seconds(),
4254            milliseconds: m.milliseconds(),
4255        };
4256    }
4257
4258    function toJSON() {
4259        // new Date(NaN).toJSON() === null
4260        return this.isValid() ? this.toISOString() : null;
4261    }
4262
4263    function isValid$2() {
4264        return isValid(this);
4265    }
4266
4267    function parsingFlags() {
4268        return extend({}, getParsingFlags(this));
4269    }
4270
4271    function invalidAt() {
4272        return getParsingFlags(this).overflow;
4273    }
4274
4275    function creationData() {
4276        return {
4277            input: this._i,
4278            format: this._f,
4279            locale: this._locale,
4280            isUTC: this._isUTC,
4281            strict: this._strict,
4282        };
4283    }
4284
4285    addFormatToken('N', 0, 0, 'eraAbbr');
4286    addFormatToken('NN', 0, 0, 'eraAbbr');
4287    addFormatToken('NNN', 0, 0, 'eraAbbr');
4288    addFormatToken('NNNN', 0, 0, 'eraName');
4289    addFormatToken('NNNNN', 0, 0, 'eraNarrow');
4290
4291    addFormatToken('y', ['y', 1], 'yo', 'eraYear');
4292    addFormatToken('y', ['yy', 2], 0, 'eraYear');
4293    addFormatToken('y', ['yyy', 3], 0, 'eraYear');
4294    addFormatToken('y', ['yyyy', 4], 0, 'eraYear');
4295
4296    addRegexToken('N', matchEraAbbr);
4297    addRegexToken('NN', matchEraAbbr);
4298    addRegexToken('NNN', matchEraAbbr);
4299    addRegexToken('NNNN', matchEraName);
4300    addRegexToken('NNNNN', matchEraNarrow);
4301
4302    addParseToken(
vendor: 8,145 bytes, lines 4302-4577
4302
4303        ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],
4304        function (input, array, config, token) {
4305            var era = config._locale.erasParse(input, token, config._strict);
4306            if (era) {
4307                getParsingFlags(config).era = era;
4308            } else {
4309                getParsingFlags(config).invalidEra = input;
4310            }
4311        }
4312    );
4313
4314    addRegexToken('y', matchUnsigned);
4315    addRegexToken('yy', matchUnsigned);
4316    addRegexToken('yyy', matchUnsigned);
4317    addRegexToken('yyyy', matchUnsigned);
4318    addRegexToken('yo', matchEraYearOrdinal);
4319
4320    addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);
4321    addParseToken(['yo'], function (input, array, config, token) {
4322        var match;
4323        if (config._locale._eraYearOrdinalRegex) {
4324            match = input.match(config._locale._eraYearOrdinalRegex);
4325        }
4326
4327        if (config._locale.eraYearOrdinalParse) {
4328            array[YEAR] = config._locale.eraYearOrdinalParse(input, match);
4329        } else {
4330            array[YEAR] = parseInt(input, 10);
4331        }
4332    });
4333
4334    function localeEras(m, format) {
4335        var i,
4336            l,
4337            date,
4338            eras = this._eras || getLocale('en')._eras;
4339        for (i = 0, l = eras.length; i < l; ++i) {
4340            switch (typeof eras[i].since) {
4341                case 'string':
4342                    // truncate time
4343                    date = hooks(eras[i].since).startOf('day');
4344                    eras[i].since = date.valueOf();
4345                    break;
4346            }
4347
4348            switch (typeof eras[i].until) {
4349                case 'undefined':
4350                    eras[i].until = +Infinity;
4351                    break;
4352                case 'string':
4353                    // truncate time
4354                    date = hooks(eras[i].until).startOf('day').valueOf();
4355                    eras[i].until = date.valueOf();
4356                    break;
4357            }
4358        }
4359        return eras;
4360    }
4361
4362    function localeErasParse(eraName, format, strict) {
4363        var i,
4364            l,
4365            eras = this.eras(),
4366            name,
4367            abbr,
4368            narrow;
4369        eraName = eraName.toUpperCase();
4370
4371        for (i = 0, l = eras.length; i < l; ++i) {
4372            name = eras[i].name.toUpperCase();
4373            abbr = eras[i].abbr.toUpperCase();
4374            narrow = eras[i].narrow.toUpperCase();
4375
4376            if (strict) {
4377                switch (format) {
4378                    case 'N':
4379                    case 'NN':
4380                    case 'NNN':
4381                        if (abbr === eraName) {
4382                            return eras[i];
4383                        }
4384                        break;
4385
4386                    case 'NNNN':
4387                        if (name === eraName) {
4388                            return eras[i];
4389                        }
4390                        break;
4391
4392                    case 'NNNNN':
4393                        if (narrow === eraName) {
4394                            return eras[i];
4395                        }
4396                        break;
4397                }
4398            } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {
4399                return eras[i];
4400            }
4401        }
4402    }
4403
4404    function localeErasConvertYear(era, year) {
4405        var dir = era.since <= era.until ? +1 : -1;
4406        if (year === undefined) {
4407            return hooks(era.since).year();
4408        } else {
4409            return hooks(era.since).year() + (year - era.offset) * dir;
4410        }
4411    }
4412
4413    function getEraName() {
4414        var i,
4415            l,
4416            val,
4417            eras = this.localeData().eras();
4418        for (i = 0, l = eras.length; i < l; ++i) {
4419            // truncate time
4420            val = this.clone().startOf('day').valueOf();
4421
4422            if (eras[i].since <= val && val <= eras[i].until) {
4423                return eras[i].name;
4424            }
4425            if (eras[i].until <= val && val <= eras[i].since) {
4426                return eras[i].name;
4427            }
4428        }
4429
4430        return '';
4431    }
4432
4433    function getEraNarrow() {
4434        var i,
4435            l,
4436            val,
4437            eras = this.localeData().eras();
4438        for (i = 0, l = eras.length; i < l; ++i) {
4439            // truncate time
4440            val = this.clone().startOf('day').valueOf();
4441
4442            if (eras[i].since <= val && val <= eras[i].until) {
4443                return eras[i].narrow;
4444            }
4445            if (eras[i].until <= val && val <= eras[i].since) {
4446                return eras[i].narrow;
4447            }
4448        }
4449
4450        return '';
4451    }
4452
4453    function getEraAbbr() {
4454        var i,
4455            l,
4456            val,
4457            eras = this.localeData().eras();
4458        for (i = 0, l = eras.length; i < l; ++i) {
4459            // truncate time
4460            val = this.clone().startOf('day').valueOf();
4461
4462            if (eras[i].since <= val && val <= eras[i].until) {
4463                return eras[i].abbr;
4464            }
4465            if (eras[i].until <= val && val <= eras[i].since) {
4466                return eras[i].abbr;
4467            }
4468        }
4469
4470        return '';
4471    }
4472
4473    function getEraYear() {
4474        var i,
4475            l,
4476            dir,
4477            val,
4478            eras = this.localeData().eras();
4479        for (i = 0, l = eras.length; i < l; ++i) {
4480            dir = eras[i].since <= eras[i].until ? +1 : -1;
4481
4482            // truncate time
4483            val = this.clone().startOf('day').valueOf();
4484
4485            if (
4486                (eras[i].since <= val && val <= eras[i].until) ||
4487                (eras[i].until <= val && val <= eras[i].since)
4488            ) {
4489                return (
4490                    (this.year() - hooks(eras[i].since).year()) * dir +
4491                    eras[i].offset
4492                );
4493            }
4494        }
4495
4496        return this.year();
4497    }
4498
4499    function erasNameRegex(isStrict) {
4500        if (!hasOwnProp(this, '_erasNameRegex')) {
4501            computeErasParse.call(this);
4502        }
4503        return isStrict ? this._erasNameRegex : this._erasRegex;
4504    }
4505
4506    function erasAbbrRegex(isStrict) {
4507        if (!hasOwnProp(this, '_erasAbbrRegex')) {
4508            computeErasParse.call(this);
4509        }
4510        return isStrict ? this._erasAbbrRegex : this._erasRegex;
4511    }
4512
4513    function erasNarrowRegex(isStrict) {
4514        if (!hasOwnProp(this, '_erasNarrowRegex')) {
4515            computeErasParse.call(this);
4516        }
4517        return isStrict ? this._erasNarrowRegex : this._erasRegex;
4518    }
4519
4520    function matchEraAbbr(isStrict, locale) {
4521        return locale.erasAbbrRegex(isStrict);
4522    }
4523
4524    function matchEraName(isStrict, locale) {
4525        return locale.erasNameRegex(isStrict);
4526    }
4527
4528    function matchEraNarrow(isStrict, locale) {
4529        return locale.erasNarrowRegex(isStrict);
4530    }
4531
4532    function matchEraYearOrdinal(isStrict, locale) {
4533        return locale._eraYearOrdinalRegex || matchUnsigned;
4534    }
4535
4536    function computeErasParse() {
4537        var abbrPieces = [],
4538            namePieces = [],
4539            narrowPieces = [],
4540            mixedPieces = [],
4541            i,
4542            l,
4543            eras = this.eras();
4544
4545        for (i = 0, l = eras.length; i < l; ++i) {
4546            namePieces.push(regexEscape(eras[i].name));
4547            abbrPieces.push(regexEscape(eras[i].abbr));
4548            narrowPieces.push(regexEscape(eras[i].narrow));
4549
4550            mixedPieces.push(regexEscape(eras[i].name));
4551            mixedPieces.push(regexEscape(eras[i].abbr));
4552            mixedPieces.push(regexEscape(eras[i].narrow));
4553        }
4554
4555        this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
4556        this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');
4557        this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');
4558        this._erasNarrowRegex = new RegExp(
4559            '^(' + narrowPieces.join('|') + ')',
4560            'i'
4561        );
4562    }
4563
4564    // FORMATTING
4565
4566    addFormatToken(0, ['gg', 2], 0, function () {
4567        return this.weekYear() % 100;
4568    });
4569
4570    addFormatToken(0, ['GG', 2], 0, function () {
4571        return this.isoWeekYear() % 100;
4572    });
4573
4574    function addWeekYearFormatToken(token, getter) {
4575        addFormatToken(0, [token, token.length], 0, getter);
4576    }
4577
4578    addWeekYearFormatToken('gggg', 'weekYear');
4579    addWeekYearFormatToken('ggggg', 'weekYear');
4580    addWeekYearFormatToken('GGGG', 'isoWeekYear');
4581    addWeekYearFormatToken('GGGGG', 'isoWeekYear');
4582
4583    // ALIASES
4584
4585    addUnitAlias('weekYear', 'gg');
4586    addUnitAlias('isoWeekYear', 'GG');
4587
4588    // PRIORITY
4589
4590    addUnitPriority('weekYear', 1);
4591    addUnitPriority('isoWeekYear', 1);
4592
4593    // PARSING
4594
4595    addRegexToken('G', matchSigned);
4596    addRegexToken('g', matchSigned);
4597    addRegexToken('GG', match1to2, match2);
4598    addRegexToken('gg', match1to2, match2);
4599    addRegexToken('GGGG', match1to4, match4);
4600    addRegexToken('gggg', match1to4, match4);
4601    addRegexToken('GGGGG', match1to6, match6);
4602    addRegexToken('ggggg', match1to6, match6);
4603
4604    addWeekParseToken(
4605        ['gggg', 'ggggg', 'GGGG', 'GGGGG'],
4606        function (input, week, config, token) {
4607            week[token.substr(0, 2)] = toInt(input);
4608        }
4609    
vendor: 29,543 bytes, lines 4609-5632
4609);
4610
4611    addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {
4612        week[token] = hooks.parseTwoDigitYear(input);
4613    });
4614
4615    // MOMENTS
4616
4617    function getSetWeekYear(input) {
4618        return getSetWeekYearHelper.call(
4619            this,
4620            input,
4621            this.week(),
4622            this.weekday(),
4623            this.localeData()._week.dow,
4624            this.localeData()._week.doy
4625        );
4626    }
4627
4628    function getSetISOWeekYear(input) {
4629        return getSetWeekYearHelper.call(
4630            this,
4631            input,
4632            this.isoWeek(),
4633            this.isoWeekday(),
4634            1,
4635            4
4636        );
4637    }
4638
4639    function getISOWeeksInYear() {
4640        return weeksInYear(this.year(), 1, 4);
4641    }
4642
4643    function getISOWeeksInISOWeekYear() {
4644        return weeksInYear(this.isoWeekYear(), 1, 4);
4645    }
4646
4647    function getWeeksInYear() {
4648        var weekInfo = this.localeData()._week;
4649        return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
4650    }
4651
4652    function getWeeksInWeekYear() {
4653        var weekInfo = this.localeData()._week;
4654        return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);
4655    }
4656
4657    function getSetWeekYearHelper(input, week, weekday, dow, doy) {
4658        var weeksTarget;
4659        if (input == null) {
4660            return weekOfYear(this, dow, doy).year;
4661        } else {
4662            weeksTarget = weeksInYear(input, dow, doy);
4663            if (week > weeksTarget) {
4664                week = weeksTarget;
4665            }
4666            return setWeekAll.call(this, input, week, weekday, dow, doy);
4667        }
4668    }
4669
4670    function setWeekAll(weekYear, week, weekday, dow, doy) {
4671        var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),
4672            date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);
4673
4674        this.year(date.getUTCFullYear());
4675        this.month(date.getUTCMonth());
4676        this.date(date.getUTCDate());
4677        return this;
4678    }
4679
4680    // FORMATTING
4681
4682    addFormatToken('Q', 0, 'Qo', 'quarter');
4683
4684    // ALIASES
4685
4686    addUnitAlias('quarter', 'Q');
4687
4688    // PRIORITY
4689
4690    addUnitPriority('quarter', 7);
4691
4692    // PARSING
4693
4694    addRegexToken('Q', match1);
4695    addParseToken('Q', function (input, array) {
4696        array[MONTH] = (toInt(input) - 1) * 3;
4697    });
4698
4699    // MOMENTS
4700
4701    function getSetQuarter(input) {
4702        return input == null
4703            ? Math.ceil((this.month() + 1) / 3)
4704            : this.month((input - 1) * 3 + (this.month() % 3));
4705    }
4706
4707    // FORMATTING
4708
4709    addFormatToken('D', ['DD', 2], 'Do', 'date');
4710
4711    // ALIASES
4712
4713    addUnitAlias('date', 'D');
4714
4715    // PRIORITY
4716    addUnitPriority('date', 9);
4717
4718    // PARSING
4719
4720    addRegexToken('D', match1to2);
4721    addRegexToken('DD', match1to2, match2);
4722    addRegexToken('Do', function (isStrict, locale) {
4723        // TODO: Remove "ordinalParse" fallback in next major release.
4724        return isStrict
4725            ? locale._dayOfMonthOrdinalParse || locale._ordinalParse
4726            : locale._dayOfMonthOrdinalParseLenient;
4727    });
4728
4729    addParseToken(['D', 'DD'], DATE);
4730    addParseToken('Do', function (input, array) {
4731        array[DATE] = toInt(input.match(match1to2)[0]);
4732    });
4733
4734    // MOMENTS
4735
4736    var getSetDayOfMonth = makeGetSet('Date', true);
4737
4738    // FORMATTING
4739
4740    addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');
4741
4742    // ALIASES
4743
4744    addUnitAlias('dayOfYear', 'DDD');
4745
4746    // PRIORITY
4747    addUnitPriority('dayOfYear', 4);
4748
4749    // PARSING
4750
4751    addRegexToken('DDD', match1to3);
4752    addRegexToken('DDDD', match3);
4753    addParseToken(['DDD', 'DDDD'], function (input, array, config) {
4754        config._dayOfYear = toInt(input);
4755    });
4756
4757    // HELPERS
4758
4759    // MOMENTS
4760
4761    function getSetDayOfYear(input) {
4762        var dayOfYear =
4763            Math.round(
4764                (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5
4765            ) + 1;
4766        return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');
4767    }
4768
4769    // FORMATTING
4770
4771    addFormatToken('m', ['mm', 2], 0, 'minute');
4772
4773    // ALIASES
4774
4775    addUnitAlias('minute', 'm');
4776
4777    // PRIORITY
4778
4779    addUnitPriority('minute', 14);
4780
4781    // PARSING
4782
4783    addRegexToken('m', match1to2);
4784    addRegexToken('mm', match1to2, match2);
4785    addParseToken(['m', 'mm'], MINUTE);
4786
4787    // MOMENTS
4788
4789    var getSetMinute = makeGetSet('Minutes', false);
4790
4791    // FORMATTING
4792
4793    addFormatToken('s', ['ss', 2], 0, 'second');
4794
4795    // ALIASES
4796
4797    addUnitAlias('second', 's');
4798
4799    // PRIORITY
4800
4801    addUnitPriority('second', 15);
4802
4803    // PARSING
4804
4805    addRegexToken('s', match1to2);
4806    addRegexToken('ss', match1to2, match2);
4807    addParseToken(['s', 'ss'], SECOND);
4808
4809    // MOMENTS
4810
4811    var getSetSecond = makeGetSet('Seconds', false);
4812
4813    // FORMATTING
4814
4815    addFormatToken('S', 0, 0, function () {
4816        return ~~(this.millisecond() / 100);
4817    });
4818
4819    addFormatToken(0, ['SS', 2], 0, function () {
4820        return ~~(this.millisecond() / 10);
4821    });
4822
4823    addFormatToken(0, ['SSS', 3], 0, 'millisecond');
4824    addFormatToken(0, ['SSSS', 4], 0, function () {
4825        return this.millisecond() * 10;
4826    });
4827    addFormatToken(0, ['SSSSS', 5], 0, function () {
4828        return this.millisecond() * 100;
4829    });
4830    addFormatToken(0, ['SSSSSS', 6], 0, function () {
4831        return this.millisecond() * 1000;
4832    });
4833    addFormatToken(0, ['SSSSSSS', 7], 0, function () {
4834        return this.millisecond() * 10000;
4835    });
4836    addFormatToken(0, ['SSSSSSSS', 8], 0, function () {
4837        return this.millisecond() * 100000;
4838    });
4839    addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {
4840        return this.millisecond() * 1000000;
4841    });
4842
4843    // ALIASES
4844
4845    addUnitAlias('millisecond', 'ms');
4846
4847    // PRIORITY
4848
4849    addUnitPriority('millisecond', 16);
4850
4851    // PARSING
4852
4853    addRegexToken('S', match1to3, match1);
4854    addRegexToken('SS', match1to3, match2);
4855    addRegexToken('SSS', match1to3, match3);
4856
4857    var token, getSetMillisecond;
4858    for (token = 'SSSS'; token.length <= 9; token += 'S') {
4859        addRegexToken(token, matchUnsigned);
4860    }
4861
4862    function parseMs(input, array) {
4863        array[MILLISECOND] = toInt(('0.' + input) * 1000);
4864    }
4865
4866    for (token = 'S'; token.length <= 9; token += 'S') {
4867        addParseToken(token, parseMs);
4868    }
4869
4870    getSetMillisecond = makeGetSet('Milliseconds', false);
4871
4872    // FORMATTING
4873
4874    addFormatToken('z', 0, 0, 'zoneAbbr');
4875    addFormatToken('zz', 0, 0, 'zoneName');
4876
4877    // MOMENTS
4878
4879    function getZoneAbbr() {
4880        return this._isUTC ? 'UTC' : '';
4881    }
4882
4883    function getZoneName() {
4884        return this._isUTC ? 'Coordinated Universal Time' : '';
4885    }
4886
4887    var proto = Moment.prototype;
4888
4889    proto.add = add;
4890    proto.calendar = calendar$1;
4891    proto.clone = clone;
4892    proto.diff = diff;
4893    proto.endOf = endOf;
4894    proto.format = format;
4895    proto.from = from;
4896    proto.fromNow = fromNow;
4897    proto.to = to;
4898    proto.toNow = toNow;
4899    proto.get = stringGet;
4900    proto.invalidAt = invalidAt;
4901    proto.isAfter = isAfter;
4902    proto.isBefore = isBefore;
4903    proto.isBetween = isBetween;
4904    proto.isSame = isSame;
4905    proto.isSameOrAfter = isSameOrAfter;
4906    proto.isSameOrBefore = isSameOrBefore;
4907    proto.isValid = isValid$2;
4908    proto.lang = lang;
4909    proto.locale = locale;
4910    proto.localeData = localeData;
4911    proto.max = prototypeMax;
4912    proto.min = prototypeMin;
4913    proto.parsingFlags = parsingFlags;
4914    proto.set = stringSet;
4915    proto.startOf = startOf;
4916    proto.subtract = subtract;
4917    proto.toArray = toArray;
4918    proto.toObject = toObject;
4919    proto.toDate = toDate;
4920    proto.toISOString = toISOString;
4921    proto.inspect = inspect;
4922    if (typeof Symbol !== 'undefined' && Symbol.for != null) {
4923        proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
4924            return 'Moment<' + this.format() + '>';
4925        };
4926    }
4927    proto.toJSON = toJSON;
4928    proto.toString = toString;
4929    proto.unix = unix;
4930    proto.valueOf = valueOf;
4931    proto.creationData = creationData;
4932    proto.eraName = getEraName;
4933    proto.eraNarrow = getEraNarrow;
4934    proto.eraAbbr = getEraAbbr;
4935    proto.eraYear = getEraYear;
4936    proto.year = getSetYear;
4937    proto.isLeapYear = getIsLeapYear;
4938    proto.weekYear = getSetWeekYear;
4939    proto.isoWeekYear = getSetISOWeekYear;
4940    proto.quarter = proto.quarters = getSetQuarter;
4941    proto.month = getSetMonth;
4942    proto.daysInMonth = getDaysInMonth;
4943    proto.week = proto.weeks = getSetWeek;
4944    proto.isoWeek = proto.isoWeeks = getSetISOWeek;
4945    proto.weeksInYear = getWeeksInYear;
4946    proto.weeksInWeekYear = getWeeksInWeekYear;
4947    proto.isoWeeksInYear = getISOWeeksInYear;
4948    proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
4949    proto.date = getSetDayOfMonth;
4950    proto.day = proto.days = getSetDayOfWeek;
4951    proto.weekday = getSetLocaleDayOfWeek;
4952    proto.isoWeekday = getSetISODayOfWeek;
4953    proto.dayOfYear = getSetDayOfYear;
4954    proto.hour = proto.hours = getSetHour;
4955    proto.minute = proto.minutes = getSetMinute;
4956    proto.second = proto.seconds = getSetSecond;
4957    proto.millisecond = proto.milliseconds = getSetMillisecond;
4958    proto.utcOffset = getSetOffset;
4959    proto.utc = setOffsetToUTC;
4960    proto.local = setOffsetToLocal;
4961    proto.parseZone = setOffsetToParsedOffset;
4962    proto.hasAlignedHourOffset = hasAlignedHourOffset;
4963    proto.isDST = isDaylightSavingTime;
4964    proto.isLocal = isLocal;
4965    proto.isUtcOffset = isUtcOffset;
4966    proto.isUtc = isUtc;
4967    proto.isUTC = isUtc;
4968    proto.zoneAbbr = getZoneAbbr;
4969    proto.zoneName = getZoneName;
4970    proto.dates = deprecate(
4971        'dates accessor is deprecated. Use date instead.',
4972        getSetDayOfMonth
4973    );
4974    proto.months = deprecate(
4975        'months accessor is deprecated. Use month instead',
4976        getSetMonth
4977    );
4978    proto.years = deprecate(
4979        'years accessor is deprecated. Use year instead',
4980        getSetYear
4981    );
4982    proto.zone = deprecate(
4983        'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
4984        getSetZone
4985    );
4986    proto.isDSTShifted = deprecate(
4987        'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
4988        isDaylightSavingTimeShifted
4989    );
4990
4991    function createUnix(input) {
4992        return createLocal(input * 1000);
4993    }
4994
4995    function createInZone() {
4996        return createLocal.apply(null, arguments).parseZone();
4997    }
4998
4999    function preParsePostFormat(string) {
5000        return string;
5001    }
5002
5003    var proto$1 = Locale.prototype;
5004
5005    proto$1.calendar = calendar;
5006    proto$1.longDateFormat = longDateFormat;
5007    proto$1.invalidDate = invalidDate;
5008    proto$1.ordinal = ordinal;
5009    proto$1.preparse = preParsePostFormat;
5010    proto$1.postformat = preParsePostFormat;
5011    proto$1.relativeTime = relativeTime;
5012    proto$1.pastFuture = pastFuture;
5013    proto$1.set = set;
5014    proto$1.eras = localeEras;
5015    proto$1.erasParse = localeErasParse;
5016    proto$1.erasConvertYear = localeErasConvertYear;
5017    proto$1.erasAbbrRegex = erasAbbrRegex;
5018    proto$1.erasNameRegex = erasNameRegex;
5019    proto$1.erasNarrowRegex = erasNarrowRegex;
5020
5021    proto$1.months = localeMonths;
5022    proto$1.monthsShort = localeMonthsShort;
5023    proto$1.monthsParse = localeMonthsParse;
5024    proto$1.monthsRegex = monthsRegex;
5025    proto$1.monthsShortRegex = monthsShortRegex;
5026    proto$1.week = localeWeek;
5027    proto$1.firstDayOfYear = localeFirstDayOfYear;
5028    proto$1.firstDayOfWeek = localeFirstDayOfWeek;
5029
5030    proto$1.weekdays = localeWeekdays;
5031    proto$1.weekdaysMin = localeWeekdaysMin;
5032    proto$1.weekdaysShort = localeWeekdaysShort;
5033    proto$1.weekdaysParse = localeWeekdaysParse;
5034
5035    proto$1.weekdaysRegex = weekdaysRegex;
5036    proto$1.weekdaysShortRegex = weekdaysShortRegex;
5037    proto$1.weekdaysMinRegex = weekdaysMinRegex;
5038
5039    proto$1.isPM = localeIsPM;
5040    proto$1.meridiem = localeMeridiem;
5041
5042    function get$1(format, index, field, setter) {
5043        var locale = getLocale(),
5044            utc = createUTC().set(setter, index);
5045        return locale[field](utc, format);
5046    }
5047
5048    function listMonthsImpl(format, index, field) {
5049        if (isNumber(format)) {
5050            index = format;
5051            format = undefined;
5052        }
5053
5054        format = format || '';
5055
5056        if (index != null) {
5057            return get$1(format, index, field, 'month');
5058        }
5059
5060        var i,
5061            out = [];
5062        for (i = 0; i < 12; i++) {
5063            out[i] = get$1(format, i, field, 'month');
5064        }
5065        return out;
5066    }
5067
5068    // ()
5069    // (5)
5070    // (fmt, 5)
5071    // (fmt)
5072    // (true)
5073    // (true, 5)
5074    // (true, fmt, 5)
5075    // (true, fmt)
5076    function listWeekdaysImpl(localeSorted, format, index, field) {
5077        if (typeof localeSorted === 'boolean') {
5078            if (isNumber(format)) {
5079                index = format;
5080                format = undefined;
5081            }
5082
5083            format = format || '';
5084        } else {
5085            format = localeSorted;
5086            index = format;
5087            localeSorted = false;
5088
5089            if (isNumber(format)) {
5090                index = format;
5091                format = undefined;
5092            }
5093
5094            format = format || '';
5095        }
5096
5097        var locale = getLocale(),
5098            shift = localeSorted ? locale._week.dow : 0,
5099            i,
5100            out = [];
5101
5102        if (index != null) {
5103            return get$1(format, (index + shift) % 7, field, 'day');
5104        }
5105
5106        for (i = 0; i < 7; i++) {
5107            out[i] = get$1(format, (i + shift) % 7, field, 'day');
5108        }
5109        return out;
5110    }
5111
5112    function listMonths(format, index) {
5113        return listMonthsImpl(format, index, 'months');
5114    }
5115
5116    function listMonthsShort(format, index) {
5117        return listMonthsImpl(format, index, 'monthsShort');
5118    }
5119
5120    function listWeekdays(localeSorted, format, index) {
5121        return listWeekdaysImpl(localeSorted, format, index, 'weekdays');
5122    }
5123
5124    function listWeekdaysShort(localeSorted, format, index) {
5125        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');
5126    }
5127
5128    function listWeekdaysMin(localeSorted, format, index) {
5129        return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');
5130    }
5131
5132    getSetGlobalLocale('en', {
5133        eras: [
5134            {
5135                since: '0001-01-01',
5136                until: +Infinity,
5137                offset: 1,
5138                name: 'Anno Domini',
5139                narrow: 'AD',
5140                abbr: 'AD',
5141            },
5142            {
5143                since: '0000-12-31',
5144                until: -Infinity,
5145                offset: 1,
5146                name: 'Before Christ',
5147                narrow: 'BC',
5148                abbr: 'BC',
5149            },
5150        ],
5151        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
5152        ordinal: function (number) {
5153            var b = number % 10,
5154                output =
5155                    toInt((number % 100) / 10) === 1
5156                        ? 'th'
5157                        : b === 1
5158                        ? 'st'
5159                        : b === 2
5160                        ? 'nd'
5161                        : b === 3
5162                        ? 'rd'
5163                        : 'th';
5164            return number + output;
5165        },
5166    });
5167
5168    // Side effect imports
5169
5170    hooks.lang = deprecate(
5171        'moment.lang is deprecated. Use moment.locale instead.',
5172        getSetGlobalLocale
5173    );
5174    hooks.langData = deprecate(
5175        'moment.langData is deprecated. Use moment.localeData instead.',
5176        getLocale
5177    );
5178
5179    var mathAbs = Math.abs;
5180
5181    function abs() {
5182        var data = this._data;
5183
5184        this._milliseconds = mathAbs(this._milliseconds);
5185        this._days = mathAbs(this._days);
5186        this._months = mathAbs(this._months);
5187
5188        data.milliseconds = mathAbs(data.milliseconds);
5189        data.seconds = mathAbs(data.seconds);
5190        data.minutes = mathAbs(data.minutes);
5191        data.hours = mathAbs(data.hours);
5192        data.months = mathAbs(data.months);
5193        data.years = mathAbs(data.years);
5194
5195        return this;
5196    }
5197
5198    function addSubtract$1(duration, input, value, direction) {
5199        var other = createDuration(input, value);
5200
5201        duration._milliseconds += direction * other._milliseconds;
5202        duration._days += direction * other._days;
5203        duration._months += direction * other._months;
5204
5205        return duration._bubble();
5206    }
5207
5208    // supports only 2.0-style add(1, 's') or add(duration)
5209    function add$1(input, value) {
5210        return addSubtract$1(this, input, value, 1);
5211    }
5212
5213    // supports only 2.0-style subtract(1, 's') or subtract(duration)
5214    function subtract$1(input, value) {
5215        return addSubtract$1(this, input, value, -1);
5216    }
5217
5218    function absCeil(number) {
5219        if (number < 0) {
5220            return Math.floor(number);
5221        } else {
5222            return Math.ceil(number);
5223        }
5224    }
5225
5226    function bubble() {
5227        var milliseconds = this._milliseconds,
5228            days = this._days,
5229            months = this._months,
5230            data = this._data,
5231            seconds,
5232            minutes,
5233            hours,
5234            years,
5235            monthsFromDays;
5236
5237        // if we have a mix of positive and negative values, bubble down first
5238        // check: https://github.com/moment/moment/issues/2166
5239        if (
5240            !(
5241                (milliseconds >= 0 && days >= 0 && months >= 0) ||
5242                (milliseconds <= 0 && days <= 0 && months <= 0)
5243            )
5244        ) {
5245            milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
5246            days = 0;
5247            months = 0;
5248        }
5249
5250        // The following code bubbles up values, see the tests for
5251        // examples of what that means.
5252        data.milliseconds = milliseconds % 1000;
5253
5254        seconds = absFloor(milliseconds / 1000);
5255        data.seconds = seconds % 60;
5256
5257        minutes = absFloor(seconds / 60);
5258        data.minutes = minutes % 60;
5259
5260        hours = absFloor(minutes / 60);
5261        data.hours = hours % 24;
5262
5263        days += absFloor(hours / 24);
5264
5265        // convert days to months
5266        monthsFromDays = absFloor(daysToMonths(days));
5267        months += monthsFromDays;
5268        days -= absCeil(monthsToDays(monthsFromDays));
5269
5270        // 12 months -> 1 year
5271        years = absFloor(months / 12);
5272        months %= 12;
5273
5274        data.days = days;
5275        data.months = months;
5276        data.years = years;
5277
5278        return this;
5279    }
5280
5281    function daysToMonths(days) {
5282        // 400 years have 146097 days (taking into account leap year rules)
5283        // 400 years have 12 months === 4800
5284        return (days * 4800) / 146097;
5285    }
5286
5287    function monthsToDays(months) {
5288        // the reverse of daysToMonths
5289        return (months * 146097) / 4800;
5290    }
5291
5292    function as(units) {
5293        if (!this.isValid()) {
5294            return NaN;
5295        }
5296        var days,
5297            months,
5298            milliseconds = this._milliseconds;
5299
5300        units = normalizeUnits(units);
5301
5302        if (units === 'month' || units === 'quarter' || units === 'year') {
5303            days = this._days + milliseconds / 864e5;
5304            months = this._months + daysToMonths(days);
5305            switch (units) {
5306                case 'month':
5307                    return months;
5308                case 'quarter':
5309                    return months / 3;
5310                case 'year':
5311                    return months / 12;
5312            }
5313        } else {
5314            // handle milliseconds separately because of floating point math errors (issue #1867)
5315            days = this._days + Math.round(monthsToDays(this._months));
5316            switch (units) {
5317                case 'week':
5318                    return days / 7 + milliseconds / 6048e5;
5319                case 'day':
5320                    return days + milliseconds / 864e5;
5321                case 'hour':
5322                    return days * 24 + milliseconds / 36e5;
5323                case 'minute':
5324                    return days * 1440 + milliseconds / 6e4;
5325                case 'second':
5326                    return days * 86400 + milliseconds / 1000;
5327                // Math.floor prevents floating point math errors here
5328                case 'millisecond':
5329                    return Math.floor(days * 864e5) + milliseconds;
5330                default:
5331                    throw new Error('Unknown unit ' + units);
5332            }
5333        }
5334    }
5335
5336    // TODO: Use this.as('ms')?
5337    function valueOf$1() {
5338        if (!this.isValid()) {
5339            return NaN;
5340        }
5341        return (
5342            this._milliseconds +
5343            this._days * 864e5 +
5344            (this._months % 12) * 2592e6 +
5345            toInt(this._months / 12) * 31536e6
5346        );
5347    }
5348
5349    function makeAs(alias) {
5350        return function () {
5351            return this.as(alias);
5352        };
5353    }
5354
5355    var asMilliseconds = makeAs('ms'),
5356        asSeconds = makeAs('s'),
5357        asMinutes = makeAs('m'),
5358        asHours = makeAs('h'),
5359        asDays = makeAs('d'),
5360        asWeeks = makeAs('w'),
5361        asMonths = makeAs('M'),
5362        asQuarters = makeAs('Q'),
5363        asYears = makeAs('y');
5364
5365    function clone$1() {
5366        return createDuration(this);
5367    }
5368
5369    function get$2(units) {
5370        units = normalizeUnits(units);
5371        return this.isValid() ? this[units + 's']() : NaN;
5372    }
5373
5374    function makeGetter(name) {
5375        return function () {
5376            return this.isValid() ? this._data[name] : NaN;
5377        };
5378    }
5379
5380    var milliseconds = makeGetter('milliseconds'),
5381        seconds = makeGetter('seconds'),
5382        minutes = makeGetter('minutes'),
5383        hours = makeGetter('hours'),
5384        days = makeGetter('days'),
5385        months = makeGetter('months'),
5386        years = makeGetter('years');
5387
5388    function weeks() {
5389        return absFloor(this.days() / 7);
5390    }
5391
5392    var round = Math.round,
5393        thresholds = {
5394            ss: 44, // a few seconds to seconds
5395            s: 45, // seconds to minute
5396            m: 45, // minutes to hour
5397            h: 22, // hours to day
5398            d: 26, // days to month/week
5399            w: null, // weeks to month
5400            M: 11, // months to year
5401        };
5402
5403    // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
5404    function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
5405        return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
5406    }
5407
5408    function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
5409        var duration = createDuration(posNegDuration).abs(),
5410            seconds = round(duration.as('s')),
5411            minutes = round(duration.as('m')),
5412            hours = round(duration.as('h')),
5413            days = round(duration.as('d')),
5414            months = round(duration.as('M')),
5415            weeks = round(duration.as('w')),
5416            years = round(duration.as('y')),
5417            a =
5418                (seconds <= thresholds.ss && ['s', seconds]) ||
5419                (seconds < thresholds.s && ['ss', seconds]) ||
5420                (minutes <= 1 && ['m']) ||
5421                (minutes < thresholds.m && ['mm', minutes]) ||
5422                (hours <= 1 && ['h']) ||
5423                (hours < thresholds.h && ['hh', hours]) ||
5424                (days <= 1 && ['d']) ||
5425                (days < thresholds.d && ['dd', days]);
5426
5427        if (thresholds.w != null) {
5428            a =
5429                a ||
5430                (weeks <= 1 && ['w']) ||
5431                (weeks < thresholds.w && ['ww', weeks]);
5432        }
5433        a = a ||
5434            (months <= 1 && ['M']) ||
5435            (months < thresholds.M && ['MM', months]) ||
5436            (years <= 1 && ['y']) || ['yy', years];
5437
5438        a[2] = withoutSuffix;
5439        a[3] = +posNegDuration > 0;
5440        a[4] = locale;
5441        return substituteTimeAgo.apply(null, a);
5442    }
5443
5444    // This function allows you to set the rounding function for relative time strings
5445    function getSetRelativeTimeRounding(roundingFunction) {
5446        if (roundingFunction === undefined) {
5447            return round;
5448        }
5449        if (typeof roundingFunction === 'function') {
5450            round = roundingFunction;
5451            return true;
5452        }
5453        return false;
5454    }
5455
5456    // This function allows you to set a threshold for relative time strings
5457    function getSetRelativeTimeThreshold(threshold, limit) {
5458        if (thresholds[threshold] === undefined) {
5459            return false;
5460        }
5461        if (limit === undefined) {
5462            return thresholds[threshold];
5463        }
5464        thresholds[threshold] = limit;
5465        if (threshold === 's') {
5466            thresholds.ss = limit - 1;
5467        }
5468        return true;
5469    }
5470
5471    function humanize(argWithSuffix, argThresholds) {
5472        if (!this.isValid()) {
5473            return this.localeData().invalidDate();
5474        }
5475
5476        var withSuffix = false,
5477            th = thresholds,
5478            locale,
5479            output;
5480
5481        if (typeof argWithSuffix === 'object') {
5482            argThresholds = argWithSuffix;
5483            argWithSuffix = false;
5484        }
5485        if (typeof argWithSuffix === 'boolean') {
5486            withSuffix = argWithSuffix;
5487        }
5488        if (typeof argThresholds === 'object') {
5489            th = Object.assign({}, thresholds, argThresholds);
5490            if (argThresholds.s != null && argThresholds.ss == null) {
5491                th.ss = argThresholds.s - 1;
5492            }
5493        }
5494
5495        locale = this.localeData();
5496        output = relativeTime$1(this, !withSuffix, th, locale);
5497
5498        if (withSuffix) {
5499            output = locale.pastFuture(+this, output);
5500        }
5501
5502        return locale.postformat(output);
5503    }
5504
5505    var abs$1 = Math.abs;
5506
5507    function sign(x) {
5508        return (x > 0) - (x < 0) || +x;
5509    }
5510
5511    function toISOString$1() {
5512        // for ISO strings we do not use the normal bubbling rules:
5513        //  * milliseconds bubble up until they become hours
5514        //  * days do not bubble at all
5515        //  * months bubble up until they become years
5516        // This is because there is no context-free conversion between hours and days
5517        // (think of clock changes)
5518        // and also not between days and months (28-31 days per month)
5519        if (!this.isValid()) {
5520            return this.localeData().invalidDate();
5521        }
5522
5523        var seconds = abs$1(this._milliseconds) / 1000,
5524            days = abs$1(this._days),
5525            months = abs$1(this._months),
5526            minutes,
5527            hours,
5528            years,
5529            s,
5530            total = this.asSeconds(),
5531            totalSign,
5532            ymSign,
5533            daysSign,
5534            hmsSign;
5535
5536        if (!total) {
5537            // this is the same as C#'s (Noda) and python (isodate)...
5538            // but not other JS (goog.date)
5539            return 'P0D';
5540        }
5541
5542        // 3600 seconds -> 60 minutes -> 1 hour
5543        minutes = absFloor(seconds / 60);
5544        hours = absFloor(minutes / 60);
5545        seconds %= 60;
5546        minutes %= 60;
5547
5548        // 12 months -> 1 year
5549        years = absFloor(months / 12);
5550        months %= 12;
5551
5552        // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
5553        s = seconds ? seconds.toFixed(3).replace(/\.?0+$/, '') : '';
5554
5555        totalSign = total < 0 ? '-' : '';
5556        ymSign = sign(this._months) !== sign(total) ? '-' : '';
5557        daysSign = sign(this._days) !== sign(total) ? '-' : '';
5558        hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';
5559
5560        return (
5561            totalSign +
5562            'P' +
5563            (years ? ymSign + years + 'Y' : '') +
5564            (months ? ymSign + months + 'M' : '') +
5565            (days ? daysSign + days + 'D' : '') +
5566            (hours || minutes || seconds ? 'T' : '') +
5567            (hours ? hmsSign + hours + 'H' : '') +
5568            (minutes ? hmsSign + minutes + 'M' : '') +
5569            (seconds ? hmsSign + s + 'S' : '')
5570        );
5571    }
5572
5573    var proto$2 = Duration.prototype;
5574
5575    proto$2.isValid = isValid$1;
5576    proto$2.abs = abs;
5577    proto$2.add = add$1;
5578    proto$2.subtract = subtract$1;
5579    proto$2.as = as;
5580    proto$2.asMilliseconds = asMilliseconds;
5581    proto$2.asSeconds = asSeconds;
5582    proto$2.asMinutes = asMinutes;
5583    proto$2.asHours = asHours;
5584    proto$2.asDays = asDays;
5585    proto$2.asWeeks = asWeeks;
5586    proto$2.asMonths = asMonths;
5587    proto$2.asQuarters = asQuarters;
5588    proto$2.asYears = asYears;
5589    proto$2.valueOf = valueOf$1;
5590    proto$2._bubble = bubble;
5591    proto$2.clone = clone$1;
5592    proto$2.get = get$2;
5593    proto$2.milliseconds = milliseconds;
5594    proto$2.seconds = seconds;
5595    proto$2.minutes = minutes;
5596    proto$2.hours = hours;
5597    proto$2.days = days;
5598    proto$2.weeks = weeks;
5599    proto$2.months = months;
5600    proto$2.years = years;
5601    proto$2.humanize = humanize;
5602    proto$2.toISOString = toISOString$1;
5603    proto$2.toString = toISOString$1;
5604    proto$2.toJSON = toISOString$1;
5605    proto$2.locale = locale;
5606    proto$2.localeData = localeData;
5607
5608    proto$2.toIsoString = deprecate(
5609        'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
5610        toISOString$1
5611    );
5612    proto$2.lang = lang;
5613
5614    // FORMATTING
5615
5616    addFormatToken('X', 0, 0, 'unix');
5617    addFormatToken('x', 0, 0, 'valueOf');
5618
5619    // PARSING
5620
5621    addRegexToken('x', matchSigned);
5622    addRegexToken('X', matchTimestamp);
5623    addParseToken('X', function (input, array, config) {
5624        config._d = new Date(parseFloat(input) * 1000);
5625    });
5626    addParseToken('x', function (input, array, config) {
5627        config._d = new Date(toInt(input));
5628    });
5629
5630    //! moment.js
5631
5632    hooks.version = '2.2
56329.2';
5633
5634    setHookCallback(createLocal);
5635
5636    hooks.fn = proto;
5637    hooks.min = min;
5638    hooks.max = max;
5639    hooks.now = now;
5640    hooks.utc = createUTC;
5641    hooks.unix = createUnix;
5642    hooks.months = listMonths;
5643    hooks.isDate = isDate;
5644    hooks.locale = getSetGlobalLocale;
5645    hooks.invalid = createInvalid;
5646    hooks.duration = createDuration;
5647    hooks.isMoment = isMoment;
5648    hooks.weekdays = listWeekdays;
5649    hooks.parseZone = createInZone;
5650    hooks.localeData = getLocale;
5651    hooks.isDuration = isDuration;
5652    hooks.monthsShort = listMonthsShort;
5653    hooks.weekdaysMin = listWeekdaysMin;
5654    hooks.defineLocale = defineLocale;
5655    hooks.updateLocale = updateLocale;
5656    hooks.locales = listLocales;
5657    hooks.weekdaysShort = listWeekdaysShort;
5658    hooks.normalizeUnits = normalizeUnits;
5659    hooks.relativeTimeRounding = getSetRelativeTimeRounding;
5660    hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
5661    hooks.calendarFormat = getCalendarFormat;
5662    hooks.prototype = proto;
5663
5664    // currently HTML5 input type only supports 24-hour formats
5665    hooks.HTML5_FMT = {
5666        DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type="datetime-local" />
5667        DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type="datetime-local" step="1" />
5668        DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type="datetime-local" step="0.001" />
5669        DATE: 'YYYY-MM-DD', // <input type="date" />
5670        TIME: 'HH:mm', // <input type="time" />
5671        TIME_SECONDS: 'HH:mm:ss', // <input type="time" step="1" />
5672        TIME_MS: 'HH:mm:ss.SSS', // <input type="time" step="0.001" />
5673        WEEK: 'GGGG-[W]WW', // <input type="week" />
5674        MONTH: 'YYYY-MM', // <input type="month" />
5675    };
5676
5677    //! moment.js locale configuration
5678
5679    hooks.defineLocale('af', {
5680        months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(
5681            '_'
5682        ),
5683        monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),
5684        weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(
5685            '_'
5686        ),
5687        weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),
5688        weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),
5689        meridiemParse: /vm|nm/i,
5690        isPM: function (input) {
5691            return /^nm$/i.test(input);
5692        },
5693        meridiem: function (hours, minutes, isLower) {
5694            if (hours < 12) {
5695                return isLower ? 'vm' : 'VM';
5696            } else {
5697                return isLower ? 'nm' : 'NM';
5698            }
5699        },
5700        longDateFormat: {
5701            LT: 'HH:mm',
5702            LTS: 'HH:mm:ss',
5703            L: 'DD/MM/YYYY',
5704            LL: 'D MMMM YYYY',
5705            LLL: 'D MMMM YYYY HH:mm',
5706            LLLL: 'dddd, D MMMM YYYY HH:mm',
5707        },
5708        calendar: {
5709            sameDay: '[Vandag om] LT',
5710            nextDay: '[Môre om] LT',
5711            nextWeek: 'dddd [om] LT',
5712            lastDay: '[Gister om] LT',
5713            lastWeek: '[Laas] dddd [om] LT',
5714            sameElse: 'L',
5715        },
5716        relativeTime: {
vendor: 16,384 bytes, lines 5717-6214
5717            future: 'oor %s',
5718            past: '%s gelede',
5719            s: "'n paar sekondes",
5720            ss: '%d sekondes',
5721            m: "'n minuut",
5722            mm: '%d minute',
5723            h: "'n uur",
5724            hh: '%d ure',
5725            d: "'n dag",
5726            dd: '%d dae',
5727            M: "'n maand",
5728            MM: '%d maande',
5729            y: "'n jaar",
5730            yy: '%d jaar',
5731        },
5732        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
5733        ordinal: function (number) {
5734            return (
5735                number +
5736                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
5737            ); // Thanks to Joris Röling : https://github.com/jjupiter
5738        },
5739        week: {
5740            dow: 1, // Maandag is die eerste dag van die week.
5741            doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.
5742        },
5743    });
5744
5745    //! moment.js locale configuration
5746
5747    var pluralForm = function (n) {
5748            return n === 0
5749                ? 0
5750                : n === 1
5751                ? 1
5752                : n === 2
5753                ? 2
5754                : n % 100 >= 3 && n % 100 <= 10
5755                ? 3
5756                : n % 100 >= 11
5757                ? 4
5758                : 5;
5759        },
5760        plurals = {
5761            s: [
5762                'أقل من ثانية',
5763                'ثانية واحدة',
5764                ['ثانيتان', 'ثانيتين'],
5765                '%d ثوان',
5766                '%d ثانية',
5767                '%d ثانية',
5768            ],
5769            m: [
5770                'أقل من دقيقة',
5771                'دقيقة واحدة',
5772                ['دقيقتان', 'دقيقتين'],
5773                '%d دقائق',
5774                '%d دقيقة',
5775                '%d دقيقة',
5776            ],
5777            h: [
5778                'أقل من ساعة',
5779                'ساعة واحدة',
5780                ['ساعتان', 'ساعتين'],
5781                '%d ساعات',
5782                '%d ساعة',
5783                '%d ساعة',
5784            ],
5785            d: [
5786                'أقل من يوم',
5787                'يوم واحد',
5788                ['يومان', 'يومين'],
5789                '%d أيام',
5790                '%d يومًا',
5791                '%d يوم',
5792            ],
5793            M: [
5794                'أقل من شهر',
5795                'شهر واحد',
5796                ['شهران', 'شهرين'],
5797                '%d أشهر',
5798                '%d شهرا',
5799                '%d شهر',
5800            ],
5801            y: [
5802                'أقل من عام',
5803                'عام واحد',
5804                ['عامان', 'عامين'],
5805                '%d أعوام',
5806                '%d عامًا',
5807                '%d عام',
5808            ],
5809        },
5810        pluralize = function (u) {
5811            return function (number, withoutSuffix, string, isFuture) {
5812                var f = pluralForm(number),
5813                    str = plurals[u][pluralForm(number)];
5814                if (f === 2) {
5815                    str = str[withoutSuffix ? 0 : 1];
5816                }
5817                return str.replace(/%d/i, number);
5818            };
5819        },
5820        months$1 = [
5821            'جانفي',
5822            'فيفري',
5823            'مارس',
5824            'أفريل',
5825            'ماي',
5826            'جوان',
5827            'جويلية',
5828            'أوت',
5829            'سبتمبر',
5830            'أكتوبر',
5831            'نوفمبر',
5832            'ديسمبر',
5833        ];
5834
5835    hooks.defineLocale('ar-dz', {
5836        months: months$1,
5837        monthsShort: months$1,
5838        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5839        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
5840        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5841        weekdaysParseExact: true,
5842        longDateFormat: {
5843            LT: 'HH:mm',
5844            LTS: 'HH:mm:ss',
5845            L: 'D/\u200FM/\u200FYYYY',
5846            LL: 'D MMMM YYYY',
5847            LLL: 'D MMMM YYYY HH:mm',
5848            LLLL: 'dddd D MMMM YYYY HH:mm',
5849        },
5850        meridiemParse: /ص|م/,
5851        isPM: function (input) {
5852            return 'م' === input;
5853        },
5854        meridiem: function (hour, minute, isLower) {
5855            if (hour < 12) {
5856                return 'ص';
5857            } else {
5858                return 'م';
5859            }
5860        },
5861        calendar: {
5862            sameDay: '[اليوم عند الساعة] LT',
5863            nextDay: '[غدًا عند الساعة] LT',
5864            nextWeek: 'dddd [عند الساعة] LT',
5865            lastDay: '[أمس عند الساعة] LT',
5866            lastWeek: 'dddd [عند الساعة] LT',
5867            sameElse: 'L',
5868        },
5869        relativeTime: {
5870            future: 'بعد %s',
5871            past: 'منذ %s',
5872            s: pluralize('s'),
5873            ss: pluralize('s'),
5874            m: pluralize('m'),
5875            mm: pluralize('m'),
5876            h: pluralize('h'),
5877            hh: pluralize('h'),
5878            d: pluralize('d'),
5879            dd: pluralize('d'),
5880            M: pluralize('M'),
5881            MM: pluralize('M'),
5882            y: pluralize('y'),
5883            yy: pluralize('y'),
5884        },
5885        postformat: function (string) {
5886            return string.replace(/,/g, '،');
5887        },
5888        week: {
5889            dow: 0, // Sunday is the first day of the week.
5890            doy: 4, // The week that contains Jan 4th is the first week of the year.
5891        },
5892    });
5893
5894    //! moment.js locale configuration
5895
5896    hooks.defineLocale('ar-kw', {
5897        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5898            '_'
5899        ),
5900        monthsShort:
5901            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
5902                '_'
5903            ),
5904        weekdays: 'الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
5905        weekdaysShort: 'احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
5906        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
5907        weekdaysParseExact: true,
5908        longDateFormat: {
5909            LT: 'HH:mm',
5910            LTS: 'HH:mm:ss',
5911            L: 'DD/MM/YYYY',
5912            LL: 'D MMMM YYYY',
5913            LLL: 'D MMMM YYYY HH:mm',
5914            LLLL: 'dddd D MMMM YYYY HH:mm',
5915        },
5916        calendar: {
5917            sameDay: '[اليوم على الساعة] LT',
5918            nextDay: '[غدا على الساعة] LT',
5919            nextWeek: 'dddd [على الساعة] LT',
5920            lastDay: '[أمس على الساعة] LT',
5921            lastWeek: 'dddd [على الساعة] LT',
5922            sameElse: 'L',
5923        },
5924        relativeTime: {
5925            future: 'في %s',
5926            past: 'منذ %s',
5927            s: 'ثوان',
5928            ss: '%d ثانية',
5929            m: 'دقيقة',
5930            mm: '%d دقائق',
5931            h: 'ساعة',
5932            hh: '%d ساعات',
5933            d: 'يوم',
5934            dd: '%d أيام',
5935            M: 'شهر',
5936            MM: '%d أشهر',
5937            y: 'سنة',
5938            yy: '%d سنوات',
5939        },
5940        week: {
5941            dow: 0, // Sunday is the first day of the week.
5942            doy: 12, // The week that contains Jan 12th is the first week of the year.
5943        },
5944    });
5945
5946    //! moment.js locale configuration
5947
5948    var symbolMap = {
5949            1: '1',
5950            2: '2',
5951            3: '3',
5952            4: '4',
5953            5: '5',
5954            6: '6',
5955            7: '7',
5956            8: '8',
5957            9: '9',
5958            0: '0',
5959        },
5960        pluralForm$1 = function (n) {
5961            return n === 0
5962                ? 0
5963                : n === 1
5964                ? 1
5965                : n === 2
5966                ? 2
5967                : n % 100 >= 3 && n % 100 <= 10
5968                ? 3
5969                : n % 100 >= 11
5970                ? 4
5971                : 5;
5972        },
5973        plurals$1 = {
5974            s: [
5975                'أقل من ثانية',
5976                'ثانية واحدة',
5977                ['ثانيتان', 'ثانيتين'],
5978                '%d ثوان',
5979                '%d ثانية',
5980                '%d ثانية',
5981            ],
5982            m: [
5983                'أقل من دقيقة',
5984                'دقيقة واحدة',
5985                ['دقيقتان', 'دقيقتين'],
5986                '%d دقائق',
5987                '%d دقيقة',
5988                '%d دقيقة',
5989            ],
5990            h: [
5991                'أقل من ساعة',
5992                'ساعة واحدة',
5993                ['ساعتان', 'ساعتين'],
5994                '%d ساعات',
5995                '%d ساعة',
5996                '%d ساعة',
5997            ],
5998            d: [
5999                'أقل من يوم',
6000                'يوم واحد',
6001                ['يومان', 'يومين'],
6002                '%d أيام',
6003                '%d يومًا',
6004                '%d يوم',
6005            ],
6006            M: [
6007                'أقل من شهر',
6008                'شهر واحد',
6009                ['شهران', 'شهرين'],
6010                '%d أشهر',
6011                '%d شهرا',
6012                '%d شهر',
6013            ],
6014            y: [
6015                'أقل من عام',
6016                'عام واحد',
6017                ['عامان', 'عامين'],
6018                '%d أعوام',
6019                '%d عامًا',
6020                '%d عام',
6021            ],
6022        },
6023        pluralize$1 = function (u) {
6024            return function (number, withoutSuffix, string, isFuture) {
6025                var f = pluralForm$1(number),
6026                    str = plurals$1[u][pluralForm$1(number)];
6027                if (f === 2) {
6028                    str = str[withoutSuffix ? 0 : 1];
6029                }
6030                return str.replace(/%d/i, number);
6031            };
6032        },
6033        months$2 = [
6034            'يناير',
6035            'فبراير',
6036            'مارس',
6037            'أبريل',
6038            'مايو',
6039            'يونيو',
6040            'يوليو',
6041            'أغسطس',
6042            'سبتمبر',
6043            'أكتوبر',
6044            'نوفمبر',
6045            'ديسمبر',
6046        ];
6047
6048    hooks.defineLocale('ar-ly', {
6049        months: months$2,
6050        monthsShort: months$2,
6051        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6052        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6053        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6054        weekdaysParseExact: true,
6055        longDateFormat: {
6056            LT: 'HH:mm',
6057            LTS: 'HH:mm:ss',
6058            L: 'D/\u200FM/\u200FYYYY',
6059            LL: 'D MMMM YYYY',
6060            LLL: 'D MMMM YYYY HH:mm',
6061            LLLL: 'dddd D MMMM YYYY HH:mm',
6062        },
6063        meridiemParse: /ص|م/,
6064        isPM: function (input) {
6065            return 'م' === input;
6066        },
6067        meridiem: function (hour, minute, isLower) {
6068            if (hour < 12) {
6069                return 'ص';
6070            } else {
6071                return 'م';
6072            }
6073        },
6074        calendar: {
6075            sameDay: '[اليوم عند الساعة] LT',
6076            nextDay: '[غدًا عند الساعة] LT',
6077            nextWeek: 'dddd [عند الساعة] LT',
6078            lastDay: '[أمس عند الساعة] LT',
6079            lastWeek: 'dddd [عند الساعة] LT',
6080            sameElse: 'L',
6081        },
6082        relativeTime: {
6083            future: 'بعد %s',
6084            past: 'منذ %s',
6085            s: pluralize$1('s'),
6086            ss: pluralize$1('s'),
6087            m: pluralize$1('m'),
6088            mm: pluralize$1('m'),
6089            h: pluralize$1('h'),
6090            hh: pluralize$1('h'),
6091            d: pluralize$1('d'),
6092            dd: pluralize$1('d'),
6093            M: pluralize$1('M'),
6094            MM: pluralize$1('M'),
6095            y: pluralize$1('y'),
6096            yy: pluralize$1('y'),
6097        },
6098        preparse: function (string) {
6099            return string.replace(/،/g, ',');
6100        },
6101        postformat: function (string) {
6102            return string
6103                .replace(/\d/g, function (match) {
6104                    return symbolMap[match];
6105                })
6106                .replace(/,/g, '،');
6107        },
6108        week: {
6109            dow: 6, // Saturday is the first day of the week.
6110            doy: 12, // The week that contains Jan 12th is the first week of the year.
6111        },
6112    });
6113
6114    //! moment.js locale configuration
6115
6116    hooks.defineLocale('ar-ma', {
6117        months: 'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6118            '_'
6119        ),
6120        monthsShort:
6121            'يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر'.split(
6122                '_'
6123            ),
6124        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6125        weekdaysShort: 'احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت'.split('_'),
6126        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6127        weekdaysParseExact: true,
6128        longDateFormat: {
6129            LT: 'HH:mm',
6130            LTS: 'HH:mm:ss',
6131            L: 'DD/MM/YYYY',
6132            LL: 'D MMMM YYYY',
6133            LLL: 'D MMMM YYYY HH:mm',
6134            LLLL: 'dddd D MMMM YYYY HH:mm',
6135        },
6136        calendar: {
6137            sameDay: '[اليوم على الساعة] LT',
6138            nextDay: '[غدا على الساعة] LT',
6139            nextWeek: 'dddd [على الساعة] LT',
6140            lastDay: '[أمس على الساعة] LT',
6141            lastWeek: 'dddd [على الساعة] LT',
6142            sameElse: 'L',
6143        },
6144        relativeTime: {
6145            future: 'في %s',
6146            past: 'منذ %s',
6147            s: 'ثوان',
6148            ss: '%d ثانية',
6149            m: 'دقيقة',
6150            mm: '%d دقائق',
6151            h: 'ساعة',
6152            hh: '%d ساعات',
6153            d: 'يوم',
6154            dd: '%d أيام',
6155            M: 'شهر',
6156            MM: '%d أشهر',
6157            y: 'سنة',
6158            yy: '%d سنوات',
6159        },
6160        week: {
6161            dow: 1, // Monday is the first day of the week.
6162            doy: 4, // The week that contains Jan 4th is the first week of the year.
6163        },
6164    });
6165
6166    //! moment.js locale configuration
6167
6168    var symbolMap$1 = {
6169            1: 'Ù¡',
6170            2: 'Ù¢',
6171            3: 'Ù£',
6172            4: 'Ù¤',
6173            5: 'Ù¥',
6174            6: 'Ù¦',
6175            7: 'Ù§',
6176            8: 'Ù¨',
6177            9: 'Ù©',
6178            0: 'Ù ',
6179        },
6180        numberMap = {
6181            'Ù¡': '1',
6182            'Ù¢': '2',
6183            'Ù£': '3',
6184            'Ù¤': '4',
6185            'Ù¥': '5',
6186            'Ù¦': '6',
6187            'Ù§': '7',
6188            'Ù¨': '8',
6189            'Ù©': '9',
6190            'Ù ': '0',
6191        };
6192
6193    hooks.defineLocale('ar-sa', {
6194        months: 'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6195            '_'
6196        ),
6197        monthsShort:
6198            'يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6199                '_'
6200            ),
6201        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6202        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6203        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6204        weekdaysParseExact: true,
6205        longDateFormat: {
6206            LT: 'HH:mm',
6207            LTS: 'HH:mm:ss',
6208            L: 'DD/MM/YYYY',
6209            LL: 'D MMMM YYYY',
6210            LLL: 'D MMMM YYYY HH:mm',
6211            LLLL: 'dddd D MMMM YYYY HH:mm',
6212        },
6213        meridiemParse: /ص|م/,
6214        isPM: fun
vendor: 29,983 bytes, lines 6214-7063
6214ction (input) {
6215            return 'م' === input;
6216        },
6217        meridiem: function (hour, minute, isLower) {
6218            if (hour < 12) {
6219                return 'ص';
6220            } else {
6221                return 'م';
6222            }
6223        },
6224        calendar: {
6225            sameDay: '[اليوم على الساعة] LT',
6226            nextDay: '[غدا على الساعة] LT',
6227            nextWeek: 'dddd [على الساعة] LT',
6228            lastDay: '[أمس على الساعة] LT',
6229            lastWeek: 'dddd [على الساعة] LT',
6230            sameElse: 'L',
6231        },
6232        relativeTime: {
6233            future: 'في %s',
6234            past: 'منذ %s',
6235            s: 'ثوان',
6236            ss: '%d ثانية',
6237            m: 'دقيقة',
6238            mm: '%d دقائق',
6239            h: 'ساعة',
6240            hh: '%d ساعات',
6241            d: 'يوم',
6242            dd: '%d أيام',
6243            M: 'شهر',
6244            MM: '%d أشهر',
6245            y: 'سنة',
6246            yy: '%d سنوات',
6247        },
6248        preparse: function (string) {
6249            return string
6250                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6251                    return numberMap[match];
6252                })
6253                .replace(/،/g, ',');
6254        },
6255        postformat: function (string) {
6256            return string
6257                .replace(/\d/g, function (match) {
6258                    return symbolMap$1[match];
6259                })
6260                .replace(/,/g, '،');
6261        },
6262        week: {
6263            dow: 0, // Sunday is the first day of the week.
6264            doy: 6, // The week that contains Jan 6th is the first week of the year.
6265        },
6266    });
6267
6268    //! moment.js locale configuration
6269
6270    hooks.defineLocale('ar-tn', {
6271        months: 'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6272            '_'
6273        ),
6274        monthsShort:
6275            'جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر'.split(
6276                '_'
6277            ),
6278        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6279        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6280        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6281        weekdaysParseExact: true,
6282        longDateFormat: {
6283            LT: 'HH:mm',
6284            LTS: 'HH:mm:ss',
6285            L: 'DD/MM/YYYY',
6286            LL: 'D MMMM YYYY',
6287            LLL: 'D MMMM YYYY HH:mm',
6288            LLLL: 'dddd D MMMM YYYY HH:mm',
6289        },
6290        calendar: {
6291            sameDay: '[اليوم على الساعة] LT',
6292            nextDay: '[غدا على الساعة] LT',
6293            nextWeek: 'dddd [على الساعة] LT',
6294            lastDay: '[أمس على الساعة] LT',
6295            lastWeek: 'dddd [على الساعة] LT',
6296            sameElse: 'L',
6297        },
6298        relativeTime: {
6299            future: 'في %s',
6300            past: 'منذ %s',
6301            s: 'ثوان',
6302            ss: '%d ثانية',
6303            m: 'دقيقة',
6304            mm: '%d دقائق',
6305            h: 'ساعة',
6306            hh: '%d ساعات',
6307            d: 'يوم',
6308            dd: '%d أيام',
6309            M: 'شهر',
6310            MM: '%d أشهر',
6311            y: 'سنة',
6312            yy: '%d سنوات',
6313        },
6314        week: {
6315            dow: 1, // Monday is the first day of the week.
6316            doy: 4, // The week that contains Jan 4th is the first week of the year.
6317        },
6318    });
6319
6320    //! moment.js locale configuration
6321
6322    var symbolMap$2 = {
6323            1: 'Ù¡',
6324            2: 'Ù¢',
6325            3: 'Ù£',
6326            4: 'Ù¤',
6327            5: 'Ù¥',
6328            6: 'Ù¦',
6329            7: 'Ù§',
6330            8: 'Ù¨',
6331            9: 'Ù©',
6332            0: 'Ù ',
6333        },
6334        numberMap$1 = {
6335            'Ù¡': '1',
6336            'Ù¢': '2',
6337            'Ù£': '3',
6338            'Ù¤': '4',
6339            'Ù¥': '5',
6340            'Ù¦': '6',
6341            'Ù§': '7',
6342            'Ù¨': '8',
6343            'Ù©': '9',
6344            'Ù ': '0',
6345        },
6346        pluralForm$2 = function (n) {
6347            return n === 0
6348                ? 0
6349                : n === 1
6350                ? 1
6351                : n === 2
6352                ? 2
6353                : n % 100 >= 3 && n % 100 <= 10
6354                ? 3
6355                : n % 100 >= 11
6356                ? 4
6357                : 5;
6358        },
6359        plurals$2 = {
6360            s: [
6361                'أقل من ثانية',
6362                'ثانية واحدة',
6363                ['ثانيتان', 'ثانيتين'],
6364                '%d ثوان',
6365                '%d ثانية',
6366                '%d ثانية',
6367            ],
6368            m: [
6369                'أقل من دقيقة',
6370                'دقيقة واحدة',
6371                ['دقيقتان', 'دقيقتين'],
6372                '%d دقائق',
6373                '%d دقيقة',
6374                '%d دقيقة',
6375            ],
6376            h: [
6377                'أقل من ساعة',
6378                'ساعة واحدة',
6379                ['ساعتان', 'ساعتين'],
6380                '%d ساعات',
6381                '%d ساعة',
6382                '%d ساعة',
6383            ],
6384            d: [
6385                'أقل من يوم',
6386                'يوم واحد',
6387                ['يومان', 'يومين'],
6388                '%d أيام',
6389                '%d يومًا',
6390                '%d يوم',
6391            ],
6392            M: [
6393                'أقل من شهر',
6394                'شهر واحد',
6395                ['شهران', 'شهرين'],
6396                '%d أشهر',
6397                '%d شهرا',
6398                '%d شهر',
6399            ],
6400            y: [
6401                'أقل من عام',
6402                'عام واحد',
6403                ['عامان', 'عامين'],
6404                '%d أعوام',
6405                '%d عامًا',
6406                '%d عام',
6407            ],
6408        },
6409        pluralize$2 = function (u) {
6410            return function (number, withoutSuffix, string, isFuture) {
6411                var f = pluralForm$2(number),
6412                    str = plurals$2[u][pluralForm$2(number)];
6413                if (f === 2) {
6414                    str = str[withoutSuffix ? 0 : 1];
6415                }
6416                return str.replace(/%d/i, number);
6417            };
6418        },
6419        months$3 = [
6420            'يناير',
6421            'فبراير',
6422            'مارس',
6423            'أبريل',
6424            'مايو',
6425            'يونيو',
6426            'يوليو',
6427            'أغسطس',
6428            'سبتمبر',
6429            'أكتوبر',
6430            'نوفمبر',
6431            'ديسمبر',
6432        ];
6433
6434    hooks.defineLocale('ar', {
6435        months: months$3,
6436        monthsShort: months$3,
6437        weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
6438        weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
6439        weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
6440        weekdaysParseExact: true,
6441        longDateFormat: {
6442            LT: 'HH:mm',
6443            LTS: 'HH:mm:ss',
6444            L: 'D/\u200FM/\u200FYYYY',
6445            LL: 'D MMMM YYYY',
6446            LLL: 'D MMMM YYYY HH:mm',
6447            LLLL: 'dddd D MMMM YYYY HH:mm',
6448        },
6449        meridiemParse: /ص|م/,
6450        isPM: function (input) {
6451            return 'م' === input;
6452        },
6453        meridiem: function (hour, minute, isLower) {
6454            if (hour < 12) {
6455                return 'ص';
6456            } else {
6457                return 'م';
6458            }
6459        },
6460        calendar: {
6461            sameDay: '[اليوم عند الساعة] LT',
6462            nextDay: '[غدًا عند الساعة] LT',
6463            nextWeek: 'dddd [عند الساعة] LT',
6464            lastDay: '[أمس عند الساعة] LT',
6465            lastWeek: 'dddd [عند الساعة] LT',
6466            sameElse: 'L',
6467        },
6468        relativeTime: {
6469            future: 'بعد %s',
6470            past: 'منذ %s',
6471            s: pluralize$2('s'),
6472            ss: pluralize$2('s'),
6473            m: pluralize$2('m'),
6474            mm: pluralize$2('m'),
6475            h: pluralize$2('h'),
6476            hh: pluralize$2('h'),
6477            d: pluralize$2('d'),
6478            dd: pluralize$2('d'),
6479            M: pluralize$2('M'),
6480            MM: pluralize$2('M'),
6481            y: pluralize$2('y'),
6482            yy: pluralize$2('y'),
6483        },
6484        preparse: function (string) {
6485            return string
6486                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
6487                    return numberMap$1[match];
6488                })
6489                .replace(/،/g, ',');
6490        },
6491        postformat: function (string) {
6492            return string
6493                .replace(/\d/g, function (match) {
6494                    return symbolMap$2[match];
6495                })
6496                .replace(/,/g, '،');
6497        },
6498        week: {
6499            dow: 6, // Saturday is the first day of the week.
6500            doy: 12, // The week that contains Jan 12th is the first week of the year.
6501        },
6502    });
6503
6504    //! moment.js locale configuration
6505
6506    var suffixes = {
6507        1: '-inci',
6508        5: '-inci',
6509        8: '-inci',
6510        70: '-inci',
6511        80: '-inci',
6512        2: '-nci',
6513        7: '-nci',
6514        20: '-nci',
6515        50: '-nci',
6516        3: '-üncü',
6517        4: '-üncü',
6518        100: '-üncü',
6519        6: '-ncı',
6520        9: '-uncu',
6521        10: '-uncu',
6522        30: '-uncu',
6523        60: '-ıncı',
6524        90: '-ıncı',
6525    };
6526
6527    hooks.defineLocale('az', {
6528        months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(
6529            '_'
6530        ),
6531        monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),
6532        weekdays:
6533            'Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə'.split(
6534                '_'
6535            ),
6536        weekdaysShort: 'Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən'.split('_'),
6537        weekdaysMin: 'Bz_BE_ÇA_Çə_CA_Cü_Şə'.split('_'),
6538        weekdaysParseExact: true,
6539        longDateFormat: {
6540            LT: 'HH:mm',
6541            LTS: 'HH:mm:ss',
6542            L: 'DD.MM.YYYY',
6543            LL: 'D MMMM YYYY',
6544            LLL: 'D MMMM YYYY HH:mm',
6545            LLLL: 'dddd, D MMMM YYYY HH:mm',
6546        },
6547        calendar: {
6548            sameDay: '[bugün saat] LT',
6549            nextDay: '[sabah saat] LT',
6550            nextWeek: '[gələn həftə] dddd [saat] LT',
6551            lastDay: '[dünən] LT',
6552            lastWeek: '[keçən həftə] dddd [saat] LT',
6553            sameElse: 'L',
6554        },
6555        relativeTime: {
6556            future: '%s sonra',
6557            past: '%s əvvəl',
6558            s: 'bir neçə saniyə',
6559            ss: '%d saniyə',
6560            m: 'bir dəqiqə',
6561            mm: '%d dəqiqə',
6562            h: 'bir saat',
6563            hh: '%d saat',
6564            d: 'bir gün',
6565            dd: '%d gün',
6566            M: 'bir ay',
6567            MM: '%d ay',
6568            y: 'bir il',
6569            yy: '%d il',
6570        },
6571        meridiemParse: /gecə|səhər|gündüz|axşam/,
6572        isPM: function (input) {
6573            return /^(gündüz|axşam)$/.test(input);
6574        },
6575        meridiem: function (hour, minute, isLower) {
6576            if (hour < 4) {
6577                return 'gecə';
6578            } else if (hour < 12) {
6579                return 'səhər';
6580            } else if (hour < 17) {
6581                return 'gündüz';
6582            } else {
6583                return 'axşam';
6584            }
6585        },
6586        dayOfMonthOrdinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
6587        ordinal: function (number) {
6588            if (number === 0) {
6589                // special case for zero
6590                return number + '-ıncı';
6591            }
6592            var a = number % 10,
6593                b = (number % 100) - a,
6594                c = number >= 100 ? 100 : null;
6595            return number + (suffixes[a] || suffixes[b] || suffixes[c]);
6596        },
6597        week: {
6598            dow: 1, // Monday is the first day of the week.
6599            doy: 7, // The week that contains Jan 7th is the first week of the year.
6600        },
6601    });
6602
6603    //! moment.js locale configuration
6604
6605    function plural(word, num) {
6606        var forms = word.split('_');
6607        return num % 10 === 1 && num % 100 !== 11
6608            ? forms[0]
6609            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
6610            ? forms[1]
6611            : forms[2];
6612    }
6613    function relativeTimeWithPlural(number, withoutSuffix, key) {
6614        var format = {
6615            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
6616            mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'хвіліну_хвіліны_хвілін',
6617            hh: withoutSuffix ? 'гадзіна_гадзіны_гадзін' : 'гадзіну_гадзіны_гадзін',
6618            dd: 'дзень_дні_дзён',
6619            MM: 'месяц_месяцы_месяцаў',
6620            yy: 'год_гады_гадоў',
6621        };
6622        if (key === 'm') {
6623            return withoutSuffix ? 'хвіліна' : 'хвіліну';
6624        } else if (key === 'h') {
6625            return withoutSuffix ? 'гадзіна' : 'гадзіну';
6626        } else {
6627            return number + ' ' + plural(format[key], +number);
6628        }
6629    }
6630
6631    hooks.defineLocale('be', {
6632        months: {
6633            format: 'студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня'.split(
6634                '_'
6635            ),
6636            standalone:
6637                'студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань'.split(
6638                    '_'
6639                ),
6640        },
6641        monthsShort:
6642            'студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж'.split('_'),
6643        weekdays: {
6644            format: 'нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу'.split(
6645                '_'
6646            ),
6647            standalone:
6648                'нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота'.split(
6649                    '_'
6650                ),
6651            isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/,
6652        },
6653        weekdaysShort: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6654        weekdaysMin: 'нд_пн_ат_ср_чц_пт_сб'.split('_'),
6655        longDateFormat: {
6656            LT: 'HH:mm',
6657            LTS: 'HH:mm:ss',
6658            L: 'DD.MM.YYYY',
6659            LL: 'D MMMM YYYY г.',
6660            LLL: 'D MMMM YYYY г., HH:mm',
6661            LLLL: 'dddd, D MMMM YYYY г., HH:mm',
6662        },
6663        calendar: {
6664            sameDay: '[Сёння ў] LT',
6665            nextDay: '[Заўтра ў] LT',
6666            lastDay: '[Учора ў] LT',
6667            nextWeek: function () {
6668                return '[У] dddd [ў] LT';
6669            },
6670            lastWeek: function () {
6671                switch (this.day()) {
6672                    case 0:
6673                    case 3:
6674                    case 5:
6675                    case 6:
6676                        return '[У мінулую] dddd [ў] LT';
6677                    case 1:
6678                    case 2:
6679                    case 4:
6680                        return '[У мінулы] dddd [ў] LT';
6681                }
6682            },
6683            sameElse: 'L',
6684        },
6685        relativeTime: {
6686            future: 'праз %s',
6687            past: '%s таму',
6688            s: 'некалькі секунд',
6689            m: relativeTimeWithPlural,
6690            mm: relativeTimeWithPlural,
6691            h: relativeTimeWithPlural,
6692            hh: relativeTimeWithPlural,
6693            d: 'дзень',
6694            dd: relativeTimeWithPlural,
6695            M: 'месяц',
6696            MM: relativeTimeWithPlural,
6697            y: 'год',
6698            yy: relativeTimeWithPlural,
6699        },
6700        meridiemParse: /ночы|раніцы|дня|вечара/,
6701        isPM: function (input) {
6702            return /^(дня|вечара)$/.test(input);
6703        },
6704        meridiem: function (hour, minute, isLower) {
6705            if (hour < 4) {
6706                return 'ночы';
6707            } else if (hour < 12) {
6708                return 'раніцы';
6709            } else if (hour < 17) {
6710                return 'дня';
6711            } else {
6712                return 'вечара';
6713            }
6714        },
6715        dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/,
6716        ordinal: function (number, period) {
6717            switch (period) {
6718                case 'M':
6719                case 'd':
6720                case 'DDD':
6721                case 'w':
6722                case 'W':
6723                    return (number % 10 === 2 || number % 10 === 3) &&
6724                        number % 100 !== 12 &&
6725                        number % 100 !== 13
6726                        ? number + '-і'
6727                        : number + '-ы';
6728                case 'D':
6729                    return number + '-га';
6730                default:
6731                    return number;
6732            }
6733        },
6734        week: {
6735            dow: 1, // Monday is the first day of the week.
6736            doy: 7, // The week that contains Jan 7th is the first week of the year.
6737        },
6738    });
6739
6740    //! moment.js locale configuration
6741
6742    hooks.defineLocale('bg', {
6743        months: 'януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември'.split(
6744            '_'
6745        ),
6746        monthsShort: 'яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек'.split('_'),
6747        weekdays: 'неделя_понеделник_вторник_сряда_четвъртък_петък_събота'.split(
6748            '_'
6749        ),
6750        weekdaysShort: 'нед_пон_вто_сря_чет_пет_съб'.split('_'),
6751        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
6752        longDateFormat: {
6753            LT: 'H:mm',
6754            LTS: 'H:mm:ss',
6755            L: 'D.MM.YYYY',
6756            LL: 'D MMMM YYYY',
6757            LLL: 'D MMMM YYYY H:mm',
6758            LLLL: 'dddd, D MMMM YYYY H:mm',
6759        },
6760        calendar: {
6761            sameDay: '[Днес в] LT',
6762            nextDay: '[Утре в] LT',
6763            nextWeek: 'dddd [в] LT',
6764            lastDay: '[Вчера в] LT',
6765            lastWeek: function () {
6766                switch (this.day()) {
6767                    case 0:
6768                    case 3:
6769                    case 6:
6770                        return '[Миналата] dddd [в] LT';
6771                    case 1:
6772                    case 2:
6773                    case 4:
6774                    case 5:
6775                        return '[Миналия] dddd [в] LT';
6776                }
6777            },
6778            sameElse: 'L',
6779        },
6780        relativeTime: {
6781            future: 'след %s',
6782            past: 'преди %s',
6783            s: 'няколко секунди',
6784            ss: '%d секунди',
6785            m: 'минута',
6786            mm: '%d минути',
6787            h: 'час',
6788            hh: '%d часа',
6789            d: 'ден',
6790            dd: '%d дена',
6791            w: 'седмица',
6792            ww: '%d седмици',
6793            M: 'месец',
6794            MM: '%d месеца',
6795            y: 'година',
6796            yy: '%d години',
6797        },
6798        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
6799        ordinal: function (number) {
6800            var lastDigit = number % 10,
6801                last2Digits = number % 100;
6802            if (number === 0) {
6803                return number + '-ев';
6804            } else if (last2Digits === 0) {
6805                return number + '-ен';
6806            } else if (last2Digits > 10 && last2Digits < 20) {
6807                return number + '-ти';
6808            } else if (lastDigit === 1) {
6809                return number + '-ви';
6810            } else if (lastDigit === 2) {
6811                return number + '-ри';
6812            } else if (lastDigit === 7 || lastDigit === 8) {
6813                return number + '-ми';
6814            } else {
6815                return number + '-ти';
6816            }
6817        },
6818        week: {
6819            dow: 1, // Monday is the first day of the week.
6820            doy: 7, // The week that contains Jan 7th is the first week of the year.
6821        },
6822    });
6823
6824    //! moment.js locale configuration
6825
6826    hooks.defineLocale('bm', {
6827        months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(
6828            '_'
6829        ),
6830        monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),
6831        weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),
6832        weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),
6833        weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),
6834        longDateFormat: {
6835            LT: 'HH:mm',
6836            LTS: 'HH:mm:ss',
6837            L: 'DD/MM/YYYY',
6838            LL: 'MMMM [tile] D [san] YYYY',
6839            LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6840            LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',
6841        },
6842        calendar: {
6843            sameDay: '[Bi lɛrɛ] LT',
6844            nextDay: '[Sini lɛrɛ] LT',
6845            nextWeek: 'dddd [don lɛrɛ] LT',
6846            lastDay: '[Kunu lɛrɛ] LT',
6847            lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',
6848            sameElse: 'L',
6849        },
6850        relativeTime: {
6851            future: '%s kɔnɔ',
6852            past: 'a bɛ %s bɔ',
6853            s: 'sanga dama dama',
6854            ss: 'sekondi %d',
6855            m: 'miniti kelen',
6856            mm: 'miniti %d',
6857            h: 'lɛrɛ kelen',
6858            hh: 'lɛrɛ %d',
6859            d: 'tile kelen',
6860            dd: 'tile %d',
6861            M: 'kalo kelen',
6862            MM: 'kalo %d',
6863            y: 'san kelen',
6864            yy: 'san %d',
6865        },
6866        week: {
6867            dow: 1, // Monday is the first day of the week.
6868            doy: 4, // The week that contains Jan 4th is the first week of the year.
6869        },
6870    });
6871
6872    //! moment.js locale configuration
6873
6874    var symbolMap$3 = {
6875            1: 'à§§',
6876            2: '২',
6877            3: 'à§©',
6878            4: '৪',
6879            5: 'à§«',
6880            6: '৬',
6881            7: 'à§­',
6882            8: 'à§®',
6883            9: '৯',
6884            0: '০',
6885        },
6886        numberMap$2 = {
6887            'à§§': '1',
6888            '২': '2',
6889            'à§©': '3',
6890            '৪': '4',
6891            'à§«': '5',
6892            '৬': '6',
6893            'à§­': '7',
6894            'à§®': '8',
6895            '৯': '9',
6896            '০': '0',
6897        };
6898
6899    hooks.defineLocale('bn-bd', {
6900        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
6901            '_'
6902        ),
6903        monthsShort:
6904            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
6905                '_'
6906            ),
6907        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
6908            '_'
6909        ),
6910        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
6911        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
6912        longDateFormat: {
6913            LT: 'A h:mm সময়',
6914            LTS: 'A h:mm:ss সময়',
6915            L: 'DD/MM/YYYY',
6916            LL: 'D MMMM YYYY',
6917            LLL: 'D MMMM YYYY, A h:mm সময়',
6918            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
6919        },
6920        calendar: {
6921            sameDay: '[আজ] LT',
6922            nextDay: '[আগামীকাল] LT',
6923            nextWeek: 'dddd, LT',
6924            lastDay: '[গতকাল] LT',
6925            lastWeek: '[গত] dddd, LT',
6926            sameElse: 'L',
6927        },
6928        relativeTime: {
6929            future: '%s পরে',
6930            past: '%s আগে',
6931            s: 'কয়েক সেকেন্ড',
6932            ss: '%d সেকেন্ড',
6933            m: 'এক মিনিট',
6934            mm: '%d মিনিট',
6935            h: 'এক ঘন্টা',
6936            hh: '%d ঘন্টা',
6937            d: 'এক দিন',
6938            dd: '%d দিন',
6939            M: 'এক মাস',
6940            MM: '%d মাস',
6941            y: 'এক বছর',
6942            yy: '%d বছর',
6943        },
6944        preparse: function (string) {
6945            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
6946                return numberMap$2[match];
6947            });
6948        },
6949        postformat: function (string) {
6950            return string.replace(/\d/g, function (match) {
6951                return symbolMap$3[match];
6952            });
6953        },
6954
6955        meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|সন্ধ্যা|রাত/,
6956        meridiemHour: function (hour, meridiem) {
6957            if (hour === 12) {
6958                hour = 0;
6959            }
6960            if (meridiem === 'রাত') {
6961                return hour < 4 ? hour : hour + 12;
6962            } else if (meridiem === 'ভোর') {
6963                return hour;
6964            } else if (meridiem === 'সকাল') {
6965                return hour;
6966            } else if (meridiem === 'দুপুর') {
6967                return hour >= 3 ? hour : hour + 12;
6968            } else if (meridiem === 'বিকাল') {
6969                return hour + 12;
6970            } else if (meridiem === 'সন্ধ্যা') {
6971                return hour + 12;
6972            }
6973        },
6974
6975        meridiem: function (hour, minute, isLower) {
6976            if (hour < 4) {
6977                return 'রাত';
6978            } else if (hour < 6) {
6979                return 'ভোর';
6980            } else if (hour < 12) {
6981                return 'সকাল';
6982            } else if (hour < 15) {
6983                return 'দুপুর';
6984            } else if (hour < 18) {
6985                return 'বিকাল';
6986            } else if (hour < 20) {
6987                return 'সন্ধ্যা';
6988            } else {
6989                return 'রাত';
6990            }
6991        },
6992        week: {
6993            dow: 0, // Sunday is the first day of the week.
6994            doy: 6, // The week that contains Jan 6th is the first week of the year.
6995        },
6996    });
6997
6998    //! moment.js locale configuration
6999
7000    var symbolMap$4 = {
7001            1: 'à§§',
7002            2: '২',
7003            3: 'à§©',
7004            4: '৪',
7005            5: 'à§«',
7006            6: '৬',
7007            7: 'à§­',
7008            8: 'à§®',
7009            9: '৯',
7010            0: '০',
7011        },
7012        numberMap$3 = {
7013            'à§§': '1',
7014            '২': '2',
7015            'à§©': '3',
7016            '৪': '4',
7017            'à§«': '5',
7018            '৬': '6',
7019            'à§­': '7',
7020            'à§®': '8',
7021            '৯': '9',
7022            '০': '0',
7023        };
7024
7025    hooks.defineLocale('bn', {
7026        months: 'জানুয়ারি_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split(
7027            '_'
7028        ),
7029        monthsShort:
7030            'জানু_ফেব্রু_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্ট_অক্টো_নভে_ডিসে'.split(
7031                '_'
7032            ),
7033        weekdays: 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার'.split(
7034            '_'
7035        ),
7036        weekdaysShort: 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি'.split('_'),
7037        weekdaysMin: 'রবি_সোম_মঙ্গল_বুধ_বৃহ_শুক্র_শনি'.split('_'),
7038        longDateFormat: {
7039            LT: 'A h:mm সময়',
7040            LTS: 'A h:mm:ss সময়',
7041            L: 'DD/MM/YYYY',
7042            LL: 'D MMMM YYYY',
7043            LLL: 'D MMMM YYYY, A h:mm সময়',
7044            LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',
7045        },
7046        calendar: {
7047            sameDay: '[আজ] LT',
7048            nextDay: '[আগামীকাল] LT',
7049            nextWeek: 'dddd, LT',
7050            lastDay: '[গতকাল] LT',
7051            lastWeek: '[গত] dddd, LT',
7052            sameElse: 'L',
7053        },
7054        relativeTime: {
7055            future: '%s পরে',
7056            past: '%s আগে',
7057            s: 'কয়েক সেকেন্ড',
7058            ss: '%d সেকেন্ড',
7059            m: 'এক মিনিট',
7060            mm: '%d মিনিট',
7061            h: 'এক ঘন্টা',
7062            hh: '%d ঘন্টা',
7063  
7063          d: 'এক দিন',
7064            dd: '%d দিন',
7065            M: 'এক মাস',
7066            MM: '%d মাস',
7067            y: 'এক বছর',
7068            yy: '%d বছর',
7069        },
7070        preparse: function (string) {
7071            return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
7072                return numberMap$3[match];
7073            });
7074        },
7075        postformat: function (string) {
7076            return string.replace(/\d/g, function (match) {
7077                return symbolMap$4[match];
7078            });
7079        },
7080        meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,
7081        meridiemHour: function (hour, meridiem) {
7082            if (hour === 12) {
7083                hour = 0;
7084            }
7085            if (
7086                (meridiem === 'রাত' && hour >= 4) ||
7087                (meridiem === 'দুপুর' && hour < 5) ||
7088                meridiem === 'বিকাল'
7089            ) {
7090                return hour + 12;
7091            } else {
7092                return hour;
7093            }
7094        },
7095        meridiem: function (hour, minute, isLower) {
7096            if (hour < 4) {
7097                return 'রাত';
7098            } else if (hour < 10) {
7099                return 'সকাল';
7100            } else if (hour < 17) {
7101                return 'দুপুর';
7102            } else if (hour < 20) {
7103                return 'বিকাল';
7104            } else {
7105                return 'রাত';
7106            }
7107        },
7108        week: {
7109            dow: 0, // Sunday is the first day of the week.
7110            doy: 6, // The week that contains Jan 6th is the first week of the year.
7111        },
7112    });
7113
7114    //! moment.js locale configuration
7115
7116    var symbolMap$5 = {
7117            1: '༡',
7118            2: '༢',
7119            3: '༣',
7120            4: '༤',
7121            5: '༥',
7122            6: '༦',
7123            7: '༧',
7124            8: '༨',
7125            9: '༩',
7126            0: '༠',
7127        },
7128        numberMap$4 = {
7129            '༡': '1',
7130            '༢': '2',
7131            '༣': '3',
7132            '༤': '4',
7133            '༥': '5',
7134            '༦': '6',
7135            '༧': '7',
7136            '༨': '8',
7137            '༩': '9',
7138            '༠': '0',
7139        };
7140
7141    hooks.defineLocale('bo', {
7142        months: 'ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ'.split(
7143            '_'
7144        ),
7145        monthsShort:
7146            'ཟླ་1_ཟླ་2_ཟླ་3_ཟླ་4_ཟླ་5_ཟླ་6_ཟླ་7_ཟླ་8_ཟླ་9_ཟླ་10_ཟླ་11_ཟླ་12'.split(
7147                '_'
7148            ),
7149        monthsShortRegex: /^(ཟླ་\d{1,2})/,
7150        monthsParseExact: true,
7151        weekdays:
7152            'གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་'.split(
7153                '_'
7154            ),
7155        weekdaysShort: 'ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་'.split(
7156            '_'
7157        ),
7158        weekdaysMin: 'ཉི_ཟླ_མིག_ལྷག_ཕུར_སངས_སྤེན'.split('_'),
7159        longDateFormat: {
7160            LT: 'A h:mm',
7161            LTS: 'A h:mm:ss',
7162            L: 'DD/MM/YYYY',
7163            LL: 'D MMMM YYYY',
7164            LLL: 'D MMMM YYYY, A h:mm',
7165            LLLL: 'dddd, D MMMM YYYY, A h:mm',
7166        },
7167        calendar: {
7168            sameDay: '[དི་རིང] LT',
7169            nextDay: '[སང་ཉིན] LT',
7170            nextWeek: '[བདུན་ཕྲག་རྗེས་མ], LT',
7171            lastDay: '[ཁ་སང] LT',
7172            lastWeek: '[བདུན་ཕྲག་མཐའ་མ] dddd, LT',
7173            sameElse: 'L',
7174        },
7175        relativeTime: {
7176            future: '%s ལ་',
7177            past: '%s སྔན་ལ',
7178            s: 'ལམ་སང',
7179            ss: '%d སྐར་ཆ།',
7180            m: 'སྐར་མ་གཅིག',
7181            mm: '%d སྐར་མ',
7182            h: 'ཆུ་ཚོད་གཅིག',
7183            hh: '%d ཆུ་ཚོད',
7184            d: 'ཉིན་གཅིག',
7185            dd: '%d ཉིན་',
7186            M: 'ཟླ་བ་གཅིག',
7187            MM: '%d ཟླ་བ',
7188            y: 'ལོ་གཅིག',
7189            yy: '%d ལོ',
7190        },
7191        preparse: function (string) {
7192            return string.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function (match) {
7193                return numberMap$4[match];
7194            });
7195        },
7196        postformat: function (string) {
7197            return string.replace(/\d/g, function (match) {
7198                return symbolMap$5[match];
7199            });
7200        },
7201        meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
7202        meridiemHour: function (hour, meridiem) {
7203            if (hour === 12) {
7204                hour = 0;
7205            }
7206            if (
7207                (meridiem === 'མཚན་མོ' && hour >= 4) ||
7208                (meridiem === 'ཉིན་གུང' && hour < 5) ||
7209                meridiem === 'དགོང་དག'
7210            ) {
7211                return hour + 12;
7212            } else {
7213                return hour;
7214            }
7215        },
7216        meridiem: function (hour, minute, isLower) {
7217            if (hour < 4) {
7218                return 'མཚན་མོ';
7219            } else if (hour < 10) {
7220                return 'ཞོགས་ཀས';
7221            } else if (hour < 17) {
7222                return 'ཉིན་གུང';
7223            } else if (hour < 20) {
7224                return 'དགོང་དག';
7225            } else {
7226                return 'མཚན་མོ';
7227            }
7228        },
7229        week: {
7230            dow: 0, // Sunday is the first day of the week.
7231            doy: 6, // The week that contains Jan 6th is the first week of the year.
7232        },
7233    });
7234
7235    //! moment.js locale configuration
7236
7237    function relativeTimeWithMutation(number, withoutSuffix, key) {
7238        var format = {
7239            mm: 'munutenn',
7240            MM: 'miz',
7241            dd: 'devezh',
7242        };
7243        return number + ' ' + mutation(format[key], number);
7244    }
7245    function specialMutationForYears(number) {
7246        switch (lastNumber(number)) {
7247            case 1:
7248            case 3:
7249            case 4:
7250            case 5:
7251            case 9:
7252                return number + ' bloaz';
7253            default:
7254                return number + ' vloaz';
7255        }
7256    }
7257    function lastNumber(number) {
7258        if (number > 9) {
7259            return lastNumber(number % 10);
7260        }
7261        return number;
7262    }
7263    function mutation(text, number) {
7264        if (number === 2) {
7265            return softMutation(text);
7266        }
7267        return text;
7268    }
7269    function softMutation(text) {
7270        var mutationTable = {
7271            m: 'v',
7272            b: 'v',
7273            d: 'z',
7274        };
7275        if (mutationTable[text.charAt(0)] === undefined) {
7276            return text;
7277        }
7278        return mutationTable[text.charAt(0)] + text.substring(1);
7279    }
7280
7281    var monthsParse = [
7282            /^gen/i,
7283            /^c[ʼ\']hwe/i,
7284            /^meu/i,
7285            /^ebr/i,
7286            /^mae/i,
7287            /^(mez|eve)/i,
7288            /^gou/i,
7289            /^eos/i,
7290            /^gwe/i,
7291            /^her/i,
7292            /^du/i,
7293            /^ker/i,
7294        ],
7295        monthsRegex$1 =
7296            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7297        monthsStrictRegex =
7298            /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
7299        monthsShortStrictRegex =
7300            /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
7301        fullWeekdaysParse = [
7302            /^sul/i,
7303            /^lun/i,
7304            /^meurzh/i,
7305            /^merc[ʼ\']her/i,
7306            /^yaou/i,
7307            /^gwener/i,
7308            /^sadorn/i,
7309        ],
7310        shortWeekdaysParse = [
7311            /^Sul/i,
7312            /^Lun/i,
7313            /^Meu/i,
7314            /^Mer/i,
7315            /^Yao/i,
7316            /^Gwe/i,
7317            /^Sad/i,
7318        ],
7319        minWeekdaysParse = [
7320            /^Su/i,
7321            /^Lu/i,
7322            /^Me([^r]|$)/i,
7323            /^Mer/i,
7324            /^Ya/i,
7325            /^Gw/i,
7326            /^Sa/i,
7327        ];
7328
7329    hooks.defineLocale('br', {
7330        months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
7331            '_'
7332        ),
7333        monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
7334        weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
7335        weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
7336        weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
7337        weekdaysParse: minWeekdaysParse,
7338        fullWeekdaysParse: fullWeekdaysParse,
7339        shortWeekdaysParse: shortWeekdaysParse,
7340        minWeekdaysParse: minWeekdaysParse,
7341
7342        monthsRegex: monthsRegex$1,
7343        monthsShortRegex: monthsRegex$1,
7344        monthsStrictRegex: monthsStrictRegex,
7345        monthsShortStrictRegex: monthsShortStrictRegex,
7346        monthsParse: monthsParse,
7347        longMonthsParse: monthsParse,
7348        shortMonthsParse: monthsParse,
7349
7350        longDateFormat: {
7351            LT: 'HH:mm',
7352            LTS: 'HH:mm:ss',
7353            L: 'DD/MM/YYYY',
7354            LL: 'D [a viz] MMMM YYYY',
7355            LLL: 'D [a viz] MMMM YYYY HH:mm',
7356            LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
7357        },
7358        calendar: {
7359            sameDay: '[Hiziv da] LT',
7360            nextDay: '[Warcʼhoazh da] LT',
7361            nextWeek: 'dddd [da] LT',
7362            lastDay: '[Decʼh da] LT',
7363            lastWeek: 'dddd [paset da] LT',
7364            sameElse: 'L',
7365        },
7366        relativeTime: {
7367            future: 'a-benn %s',
7368            past: '%s ʼzo',
7369            s: 'un nebeud segondennoù',
7370            ss: '%d eilenn',
7371            m: 'ur vunutenn',
7372            mm: relativeTimeWithMutation,
7373            h: 'un eur',
7374            hh: '%d eur',
7375            d: 'un devezh',
7376            dd: relativeTimeWithMutation,
7377            M: 'ur miz',
7378            MM: relativeTimeWithMutation,
7379            y: 'ur bloaz',
7380            yy: specialMutationForYears,
7381        },
7382        dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
7383        ordinal: function (number) {
7384            var output = number === 1 ? 'añ' : 'vet';
7385            return number + output;
7386        },
7387        week: {
7388            dow: 1, // Monday is the first day of the week.
7389            doy: 4, // The week that contains Jan 4th is the first week of the year.
7390        },
7391        meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
7392        isPM: function (token) {
7393            return token === 'g.m.';
7394        },
7395        meridiem: function (hour, minute, isLower) {
7396            return hour < 12 ? 'a.m.' : 'g.m.';
7397        },
7398    });
7399
7400    //! moment.js locale configuration
7401
7402    function translate(number, withoutSuffix, key) {
7403        var result = number + ' ';
7404        switch (key) {
7405            case 'ss':
7406                if (number === 1) {
7407                    result += 'sekunda';
7408                } else if (number === 2 || number === 3 || number === 4) {
7409                    result += 'sekunde';
7410                } else {
7411                    result += 'sekundi';
7412                }
7413                return result;
7414            case 'm':
7415                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
7416            case 'mm':
7417                if (number === 1) {
7418                    result += 'minuta';
7419                } else if (number === 2 || number === 3 || number === 4) {
7420                    result += 'minute';
7421                } else {
7422                    result += 'minuta';
7423                }
7424                return result;
7425            case 'h':
7426                return withoutSuffix ? 'jedan sat' : 'jednog sata';
7427            case 'hh':
7428                if (number === 1) {
7429                    result += 'sat';
7430                } else if (number === 2 || number === 3 || number === 4) {
7431                    result += 'sata';
7432                } else {
7433                    result += 'sati';
7434                }
7435                return result;
7436            case 'dd':
7437                if (number === 1) {
7438                    result += 'dan';
7439                } else {
7440                    result += 'dana';
7441                }
7442                return result;
7443            case 'MM':
7444                if (number === 1) {
7445                    result += 'mjesec';
7446                } else if (number === 2 || number === 3 || number === 4) {
7447                    result += 'mjeseca';
7448                } else {
7449                    result += 'mjeseci';
7450                }
7451                return result;
7452            case 'yy':
7453                if (number === 1) {
7454                    result += 'godina';
7455                } else if (number === 2 || number === 3 || number === 4) {
7456                    result += 'godine';
7457                } else {
7458                    result += 'godina';
7459                }
7460                return result;
7461        }
7462    }
7463
7464    hooks.defineLocale('bs', {
7465        months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(
7466            '_'
7467        ),
7468        monthsShort:
7469            'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(
7470                '_'
7471            ),
7472        monthsParseExact: true,
7473        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
7474            '_'
7475        ),
7476        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
7477        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
7478        weekdaysParseExact: true,
7479        longDateFormat: {
7480            LT: 'H:mm',
7481            LTS: 'H:mm:ss',
7482            L: 'DD.MM.YYYY',
7483            LL: 'D. MMMM YYYY',
7484            LLL: 'D. MMMM YYYY H:mm',
7485            LLLL: 'dddd, D. MMMM YYYY H:mm',
7486        },
7487        calendar: {
7488            sameDay: '[danas u] LT',
7489            nextDay: '[sutra u] LT',
7490            nextWeek: function () {
7491                switch (this.day()) {
7492                    case 0:
7493                        return '[u] [nedjelju] [u] LT';
7494                    case 3:
7495                        return '[u] [srijedu] [u] LT';
7496                    case 6:
7497                        return '[u] [subotu] [u] LT';
7498                    case 1:
7499                    case 2:
7500                    case 4:
7501                    case 5:
7502                        return '[u] dddd [u] LT';
7503                }
7504            },
7505            lastDay: '[jučer u] LT',
7506            lastWeek: function () {
7507                switch (this.day()) {
7508                    case 0:
7509                    case 3:
7510                        return '[prošlu] dddd [u] LT';
7511                    case 6:
7512                        return '[prošle] [subote] [u] LT';
7513                    case 1:
7514                    case 2:
7515                    case 4:
7516                    case 5:
7517                        return '[prošli] dddd [u] LT';
7518                }
7519            },
7520            sameElse: 'L',
7521        },
7522        relativeTime: {
7523            future: 'za %s',
7524            past: 'prije %s',
7525            s: 'par sekundi',
7526            ss: translate,
7527            m: translate,
7528            mm: translate,
7529            h: translate,
7530            hh: translate,
7531            d: 'dan',
7532            dd: translate,
7533            M: 'mjesec',
7534            MM: translate,
7535            y: 'godinu',
7536            yy: translate,
7537        },
7538        dayOfMonthOrdinalParse: /\d{1,2}\./,
7539        ordinal: '%d.',
7540        week: {
7541            dow: 1, // Monday is the first day of the week.
7542            doy: 7, // The week that contains Jan 7th is the first week of the year.
7543        },
7544    });
7545
7546    //! moment.js locale configuration
7547
7548    hooks.defineLocale('ca', {
7549        months: {
7550            standalone:
7551                'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(
7552                    '_'
7553                ),
7554            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(
7555                '_'
7556            ),
7557            isFormat: /D[oD]?(\s)+MMMM/,
7558        },
7559        monthsShort:
7560            'gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(
7561                '_'
7562            ),
7563        monthsParseExact: true,
7564        weekdays:
7565            'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(
7566                '_'
7567            ),
7568        weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),
7569        weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),
7570        weekdaysParseExact: true,
7571        longDateFormat: {
7572            LT: 'H:mm',
7573            LTS: 'H:mm:ss',
7574            L: 'DD/MM/YYYY',
7575            LL: 'D MMMM [de] YYYY',
7576            ll: 'D MMM YYYY',
7577            LLL: 'D MMMM [de] YYYY [a les] H:mm',
7578            lll: 'D MMM YYYY, H:mm',
7579            LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',
7580            llll: 'ddd D MMM YYYY, H:mm',
7581        },
7582        calendar: {
7583            sameDay: function () {
7584                return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7585            },
7586            nextDay: function () {
7587                return '[demà a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7588            },
7589            nextWeek: function () {
7590                return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7591            },
7592            lastDay: function () {
7593                return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';
7594            },
7595            lastWeek: function () {
7596                return (
7597                    '[el] dddd [passat a ' +
7598                    (this.hours() !== 1 ? 'les' : 'la') +
7599                    '] LT'
7600                );
7601            },
7602            sameElse: 'L',
7603        },
7604        relativeTime: {
7605            future: "d'aquí %s",
7606            past: 'fa %s',
7607            s: 'uns segons',
7608            ss: '%d segons',
7609            m: 'un minut',
7610            mm: '%d minuts',
7611            h: 'una hora',
7612            hh: '%d hores',
7613            d: 'un dia',
7614            dd: '%d dies',
7615            M: 'un mes',
7616            MM: '%d mesos',
7617            y: 'un any',
7618            yy: '%d anys',
7619        },
7620        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
7621        ordinal: function (number, period) {
7622            var output =
7623                number === 1
7624                    ? 'r'
7625                    : number === 2
7626                    ? 'n'
7627                    : number === 3
7628                    ? 'r'
7629                    : number === 4
7630                    ? 't'
7631                    : 'è';
7632            if (period === 'w' || period === 'W') {
7633                output = 'a';
7634            }
7635            return number + output;
7636        },
7637        week: {
7638            dow: 1, // Monday is the first day of the week.
7639            doy: 4, // The week that contains Jan 4th is the first week of the year.
7640        },
7641    });
7642
7643    //! moment.js locale configuration
7644
7645    var months$4 = {
7646            format: 'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.
vendor: 8,642 bytes, lines 7646-7850
7646split(
7647                '_'
7648            ),
7649            standalone:
7650                'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
7651                    '_'
7652                ),
7653        },
7654        monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
7655        monthsParse$1 = [
7656            /^led/i,
7657            /^úno/i,
7658            /^bře/i,
7659            /^dub/i,
7660            /^kvě/i,
7661            /^(čvn|červen$|června)/i,
7662            /^(čvc|červenec|července)/i,
7663            /^srp/i,
7664            /^zář/i,
7665            /^říj/i,
7666            /^lis/i,
7667            /^pro/i,
7668        ],
7669        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7670        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7671        monthsRegex$2 =
7672            /^(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;
7673
7674    function plural$1(n) {
7675        return n > 1 && n < 5 && ~~(n / 10) !== 1;
7676    }
7677    function translate$1(number, withoutSuffix, key, isFuture) {
7678        var result = number + ' ';
7679        switch (key) {
7680            case 's': // a few seconds / in a few seconds / a few seconds ago
7681                return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
7682            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
7683                if (withoutSuffix || isFuture) {
7684                    return result + (plural$1(number) ? 'sekundy' : 'sekund');
7685                } else {
7686                    return result + 'sekundami';
7687                }
7688            case 'm': // a minute / in a minute / a minute ago
7689                return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
7690            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
7691                if (withoutSuffix || isFuture) {
7692                    return result + (plural$1(number) ? 'minuty' : 'minut');
7693                } else {
7694                    return result + 'minutami';
7695                }
7696            case 'h': // an hour / in an hour / an hour ago
7697                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
7698            case 'hh': // 9 hours / in 9 hours / 9 hours ago
7699                if (withoutSuffix || isFuture) {
7700                    return result + (plural$1(number) ? 'hodiny' : 'hodin');
7701                } else {
7702                    return result + 'hodinami';
7703                }
7704            case 'd': // a day / in a day / a day ago
7705                return withoutSuffix || isFuture ? 'den' : 'dnem';
7706            case 'dd': // 9 days / in 9 days / 9 days ago
7707                if (withoutSuffix || isFuture) {
7708                    return result + (plural$1(number) ? 'dny' : 'dní');
7709                } else {
7710                    return result + 'dny';
7711                }
7712            case 'M': // a month / in a month / a month ago
7713                return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
7714            case 'MM': // 9 months / in 9 months / 9 months ago
7715                if (withoutSuffix || isFuture) {
7716                    return result + (plural$1(number) ? 'měsíce' : 'měsíců');
7717                } else {
7718                    return result + 'měsíci';
7719                }
7720            case 'y': // a year / in a year / a year ago
7721                return withoutSuffix || isFuture ? 'rok' : 'rokem';
7722            case 'yy': // 9 years / in 9 years / 9 years ago
7723                if (withoutSuffix || isFuture) {
7724                    return result + (plural$1(number) ? 'roky' : 'let');
7725                } else {
7726                    return result + 'lety';
7727                }
7728        }
7729    }
7730
7731    hooks.defineLocale('cs', {
7732        months: months$4,
7733        monthsShort: monthsShort,
7734        monthsRegex: monthsRegex$2,
7735        monthsShortRegex: monthsRegex$2,
7736        // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
7737        // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
7738        monthsStrictRegex:
7739            /^(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,
7740        monthsShortStrictRegex:
7741            /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
7742        monthsParse: monthsParse$1,
7743        longMonthsParse: monthsParse$1,
7744        shortMonthsParse: monthsParse$1,
7745        weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
7746        weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
7747        weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
7748        longDateFormat: {
7749            LT: 'H:mm',
7750            LTS: 'H:mm:ss',
7751            L: 'DD.MM.YYYY',
7752            LL: 'D. MMMM YYYY',
7753            LLL: 'D. MMMM YYYY H:mm',
7754            LLLL: 'dddd D. MMMM YYYY H:mm',
7755            l: 'D. M. YYYY',
7756        },
7757        calendar: {
7758            sameDay: '[dnes v] LT',
7759            nextDay: '[zítra v] LT',
7760            nextWeek: function () {
7761                switch (this.day()) {
7762                    case 0:
7763                        return '[v neděli v] LT';
7764                    case 1:
7765                    case 2:
7766                        return '[v] dddd [v] LT';
7767                    case 3:
7768                        return '[ve středu v] LT';
7769                    case 4:
7770                        return '[ve čtvrtek v] LT';
7771                    case 5:
7772                        return '[v pátek v] LT';
7773                    case 6:
7774                        return '[v sobotu v] LT';
7775                }
7776            },
7777            lastDay: '[včera v] LT',
7778            lastWeek: function () {
7779                switch (this.day()) {
7780                    case 0:
7781                        return '[minulou neděli v] LT';
7782                    case 1:
7783                    case 2:
7784                        return '[minulé] dddd [v] LT';
7785                    case 3:
7786                        return '[minulou středu v] LT';
7787                    case 4:
7788                    case 5:
7789                        return '[minulý] dddd [v] LT';
7790                    case 6:
7791                        return '[minulou sobotu v] LT';
7792                }
7793            },
7794            sameElse: 'L',
7795        },
7796        relativeTime: {
7797            future: 'za %s',
7798            past: 'před %s',
7799            s: translate$1,
7800            ss: translate$1,
7801            m: translate$1,
7802            mm: translate$1,
7803            h: translate$1,
7804            hh: translate$1,
7805            d: translate$1,
7806            dd: translate$1,
7807            M: translate$1,
7808            MM: translate$1,
7809            y: translate$1,
7810            yy: translate$1,
7811        },
7812        dayOfMonthOrdinalParse: /\d{1,2}\./,
7813        ordinal: '%d.',
7814        week: {
7815            dow: 1, // Monday is the first day of the week.
7816            doy: 4, // The week that contains Jan 4th is the first week of the year.
7817        },
7818    });
7819
7820    //! moment.js locale configuration
7821
7822    hooks.defineLocale('cv', {
7823        months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав'.split(
7824            '_'
7825        ),
7826        monthsShort: 'кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш'.split('_'),
7827        weekdays:
7828            'вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун'.split(
7829                '_'
7830            ),
7831        weekdaysShort: 'выр_тун_ытл_юн_кӗҫ_эрн_шӑм'.split('_'),
7832        weekdaysMin: 'вр_тн_ыт_юн_кҫ_эр_шм'.split('_'),
7833        longDateFormat: {
7834            LT: 'HH:mm',
7835            LTS: 'HH:mm:ss',
7836            L: 'DD-MM-YYYY',
7837            LL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]',
7838            LLL: 'YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7839            LLLL: 'dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm',
7840        },
7841        calendar: {
7842            sameDay: '[Паян] LT [сехетре]',
7843            nextDay: '[Ыран] LT [сехетре]',
7844            lastDay: '[Ӗнер] LT [сехетре]',
7845            nextWeek: '[Ҫитес] dddd LT [сехетре]',
7846            lastWeek: '[Иртнӗ] dddd LT [сехетре]',
7847            sameElse: 'L',
7848        },
7849        relativeTime: {
7850            future: function (output) {
7851                var affix = /сехет$/i.exec(output)
7852                    ? 'рен'
7853                    : /ҫул$/i.exec(output)
7854                    ? 'тан'
7855                    : 'ран';
7856                return output + affix;
7857            },
7858            past: '%s каялла',
7859            s: 'пӗр-ик ҫеккунт',
7860            ss: '%d ҫеккунт',
7861            m: 'пӗр минут',
7862            mm: '%d минут',
7863            h: 'пӗр сехет',
7864            hh: '%d сехет',
7865            d: 'пӗр кун',
7866            dd: '%d кун',
7867            M: 'пӗр уйӑх',
7868            MM: '%d уйӑх',
7869            y: 'пӗр ҫул',
7870            yy: '%d ҫул',
7871        },
7872        dayOfMonthOrdinalParse: /\d{1,2}-мӗш/,
7873        ordinal: '%d-мӗш',
7874        week: {
7875            dow: 1, // Monday is the first day of the week.
7876            doy: 7, // The week that contains Jan 7th is the first week of the year.
7877        },
7878    });
7879
7880    //! moment.js locale configuration
7881
7882    hooks.defineLocale('cy', {
7883        months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(
7884            '_'
7885        ),
7886        monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(
7887            '_'
7888        ),
7889        weekdays:
7890            'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(
7891                '_'
7892            ),
7893        weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),
7894        weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),
7895        weekdaysParseExact: true,
7896        // time formats are the same as en-gb
7897        longDateFormat: {
7898            LT: 'HH:mm',
7899            LTS: 'HH:mm:ss',
7900            L: 'DD/MM/YYYY',
7901            LL: 'D MMMM YYYY',
7902            LLL: 'D MMMM YYYY HH:mm',
7903            LLLL: 'dddd, D MMMM YYYY HH:mm',
7904        },
7905        calendar: {
7906            sameDay: '[Heddiw am] LT',
7907            nextDay: '[Yfory am] LT',
7908            nextWeek: 'dddd [am] LT',
7909            lastDay: '[Ddoe am] LT',
7910            lastWeek: 'dddd [diwethaf am] LT',
7911            sameElse: 'L',
7912        },
7913        relativeTime: {
7914            future: 'mewn %s',
7915            past: '%s yn ôl',
7916            s: 'ychydig eiliadau',
7917            ss: '%d eiliad',
7918            m: 'munud',
7919            mm: '%d munud',
7920            h: 'awr',
7921            hh: '%d awr',
7922            d: 'diwrnod',
7923            dd: '%d diwrnod',
7924            M: 'mis',
7925            MM: '%d mis',
7926            y: 'blwyddyn',
7927            yy: '%d flynedd',
7928        },
7929        dayOfMonthOrdinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
7930        // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
7931        ordinal: function (number) {
7932            var b = number,
7933                output = '',
7934                lookup = [
7935                    '',
7936                    'af',
7937                    'il',
7938                    'ydd',
7939                    'ydd',
7940                    'ed',
7941                    'ed',
7942                    'ed',
7943                    'fed',
7944                    'fed',
7945                    'fed', // 1af to 10fed
7946                    'eg',
7947                    'fed',
7948                    'eg',
7949                    'eg',
7950                    'fed',
7951                    'eg',
7952                    'eg',
7953                    'fed',
7954                    'eg',
7955                    'fed', // 11eg to 20fed
7956                ];
7957            if (b > 20) {
7958                if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
7959                    output = 'fed'; // not 30ain, 70ain or 90ain
7960                } else {
7961                    output = 'ain';
7962                }
7963            } else if (b > 0) {
7964                output = lookup[b];
7965            }
7966            return number + output;
7967        },
7968        week: {
7969            dow: 1, // Monday is the first day of the week.
7970            doy: 4, // The week that contains Jan 4th is the first week of the year.
7971        },
7972    });
7973
7974    //! moment.js locale configuration
7975
7976    hooks.defineLocale('da', {
7977        months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(
7978            '_'
7979        ),
7980        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
7981        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
7982        weekdaysShort: 'søn_man_tir_ons_tor_fre_lør'.split('_'),
7983        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
7984        longDateFormat: {
7985            LT: 'HH:mm',
7986            LTS: 'HH:mm:ss',
7987            L: 'DD.MM.YYYY',
7988            LL: 'D. MMMM YYYY',
7989            LLL: 'D. MMMM YYYY HH:mm',
7990            LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',
7991        },
7992        calendar: {
7993            sameDay: '[i dag kl.] LT',
7994            nextDay: '[i morgen kl.] LT',
7995            nextWeek: 'på dddd [kl.] LT',
7996            lastDay: '[i går kl.] LT',
7997            lastWeek: '[i] dddd[s kl.] LT',
7998            sameElse: 'L',
7999        },
8000        relativeTime: {
8001            future: 'om %s',
8002            past: '%s siden',
8003            s: 'få sekunder',
8004            ss: '%d sekunder',
8005            m: 'et minut',
8006            mm: '%d minutter',
8007            h: 'en time',
8008            hh: '%d timer',
8009            d: 'en dag',
8010            dd: '%d dage',
8011            M: 'en måned',
8012            MM: '%d måneder',
8013            y: 'et år',
8014            yy: '%d år',
8015        },
8016        dayOfMonthOrdinalParse: /\d{1,2}\./,
8017        ordinal: '%d.',
8018        week: {
8019            dow: 1, // Monday is the first day of the week.
8020            doy: 4, // The week that contains Jan 4th is the first week of the year.
8021        },
8022    });
8023
8024    //! moment.js locale configuration
8025
8026    function processRelativeTime(number, withoutSuffix, key, isFuture) {
8027        var format = {
8028            m: ['eine Minute', 'einer Minute'],
8029            h: ['eine Stunde', 'einer Stunde'],
8030            d: ['ein Tag', 'einem Tag'],
8031            dd: [number + ' Tage', number + ' Tagen'],
8032            w: ['eine Woche', 'einer Woche'],
8033            M: ['ein Monat', 'einem Monat'],
8034            MM: [number + ' Monate', number + ' Monaten'],
8035            y: ['ein Jahr', 'einem Jahr'],
vendor: 5,239 bytes, lines 8036-8181
8036            yy: [number + ' Jahre', number + ' Jahren'],
8037        };
8038        return withoutSuffix ? format[key][0] : format[key][1];
8039    }
8040
8041    hooks.defineLocale('de-at', {
8042        months: 'Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8043            '_'
8044        ),
8045        monthsShort:
8046            'Jän._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8047        monthsParseExact: true,
8048        weekdays:
8049            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8050                '_'
8051            ),
8052        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8053        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8054        weekdaysParseExact: true,
8055        longDateFormat: {
8056            LT: 'HH:mm',
8057            LTS: 'HH:mm:ss',
8058            L: 'DD.MM.YYYY',
8059            LL: 'D. MMMM YYYY',
8060            LLL: 'D. MMMM YYYY HH:mm',
8061            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8062        },
8063        calendar: {
8064            sameDay: '[heute um] LT [Uhr]',
8065            sameElse: 'L',
8066            nextDay: '[morgen um] LT [Uhr]',
8067            nextWeek: 'dddd [um] LT [Uhr]',
8068            lastDay: '[gestern um] LT [Uhr]',
8069            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8070        },
8071        relativeTime: {
8072            future: 'in %s',
8073            past: 'vor %s',
8074            s: 'ein paar Sekunden',
8075            ss: '%d Sekunden',
8076            m: processRelativeTime,
8077            mm: '%d Minuten',
8078            h: processRelativeTime,
8079            hh: '%d Stunden',
8080            d: processRelativeTime,
8081            dd: processRelativeTime,
8082            w: processRelativeTime,
8083            ww: '%d Wochen',
8084            M: processRelativeTime,
8085            MM: processRelativeTime,
8086            y: processRelativeTime,
8087            yy: processRelativeTime,
8088        },
8089        dayOfMonthOrdinalParse: /\d{1,2}\./,
8090        ordinal: '%d.',
8091        week: {
8092            dow: 1, // Monday is the first day of the week.
8093            doy: 4, // The week that contains Jan 4th is the first week of the year.
8094        },
8095    });
8096
8097    //! moment.js locale configuration
8098
8099    function processRelativeTime$1(number, withoutSuffix, key, isFuture) {
8100        var format = {
8101            m: ['eine Minute', 'einer Minute'],
8102            h: ['eine Stunde', 'einer Stunde'],
8103            d: ['ein Tag', 'einem Tag'],
8104            dd: [number + ' Tage', number + ' Tagen'],
8105            w: ['eine Woche', 'einer Woche'],
8106            M: ['ein Monat', 'einem Monat'],
8107            MM: [number + ' Monate', number + ' Monaten'],
8108            y: ['ein Jahr', 'einem Jahr'],
8109            yy: [number + ' Jahre', number + ' Jahren'],
8110        };
8111        return withoutSuffix ? format[key][0] : format[key][1];
8112    }
8113
8114    hooks.defineLocale('de-ch', {
8115        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8116            '_'
8117        ),
8118        monthsShort:
8119            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8120        monthsParseExact: true,
8121        weekdays:
8122            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8123                '_'
8124            ),
8125        weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8126        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8127        weekdaysParseExact: true,
8128        longDateFormat: {
8129            LT: 'HH:mm',
8130            LTS: 'HH:mm:ss',
8131            L: 'DD.MM.YYYY',
8132            LL: 'D. MMMM YYYY',
8133            LLL: 'D. MMMM YYYY HH:mm',
8134            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8135        },
8136        calendar: {
8137            sameDay: '[heute um] LT [Uhr]',
8138            sameElse: 'L',
8139            nextDay: '[morgen um] LT [Uhr]',
8140            nextWeek: 'dddd [um] LT [Uhr]',
8141            lastDay: '[gestern um] LT [Uhr]',
8142            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8143        },
8144        relativeTime: {
8145            future: 'in %s',
8146            past: 'vor %s',
8147            s: 'ein paar Sekunden',
8148            ss: '%d Sekunden',
8149            m: processRelativeTime$1,
8150            mm: '%d Minuten',
8151            h: processRelativeTime$1,
8152            hh: '%d Stunden',
8153            d: processRelativeTime$1,
8154            dd: processRelativeTime$1,
8155            w: processRelativeTime$1,
8156            ww: '%d Wochen',
8157            M: processRelativeTime$1,
8158            MM: processRelativeTime$1,
8159            y: processRelativeTime$1,
8160            yy: processRelativeTime$1,
8161        },
8162        dayOfMonthOrdinalParse: /\d{1,2}\./,
8163        ordinal: '%d.',
8164        week: {
8165            dow: 1, // Monday is the first day of the week.
8166            doy: 4, // The week that contains Jan 4th is the first week of the year.
8167        },
8168    });
8169
8170    //! moment.js locale configuration
8171
8172    function processRelativeTime$2(number, withoutSuffix, key, isFuture) {
8173        var format = {
8174            m: ['eine Minute', 'einer Minute'],
8175            h: ['eine Stunde', 'einer Stunde'],
8176            d: ['ein Tag', 'einem Tag'],
8177            dd: [number + ' Tage', number + ' Tagen'],
8178            w: ['eine Woche', 'einer Woche'],
8179            M: ['ein Monat', 'einem Monat'],
8180            MM: [number + ' Monate', number + ' Monaten'],
8181            y: ['ein Jahr', 'einem Jahr'],
8182            yy: [number + ' Jahre', number + ' Jahren'],
8183        };
8184        return withoutSuffix ? format[key][0] : format[key][1];
8185    }
8186
8187    hooks.defineLocale('de', {
8188        months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(
8189            '_'
8190        ),
8191        monthsShort:
8192            'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),
8193        monthsParseExact: true,
8194        weekdays:
8195            'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(
8196                '_'
8197            ),
8198        weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),
8199        weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),
8200        weekdaysParseExact: true,
8201        longDateFormat: {
8202            LT: 'HH:mm',
8203            LTS: 'HH:mm:ss',
8204            L: 'DD.MM.YYYY',
8205            LL: 'D. MMMM YYYY',
8206            LLL: 'D. MMMM YYYY HH:mm',
8207            LLLL: 'dddd, D. MMMM YYYY HH:mm',
8208        },
8209        calendar: {
8210            sameDay: '[heute um] LT [Uhr]',
8211            sameElse: 'L',
8212            nextDay: '[morgen um] LT [Uhr]',
8213            nextWeek: 'dddd [um] LT [Uhr]',
8214            lastDay: '[gestern um] LT [Uhr]',
8215            lastWeek: '[letzten] dddd [um] LT [Uhr]',
8216        },
8217        relativeTime: {
8218            future: 'in %s',
8219            past: 'vor %s',
8220            s: 'ein paar Sekunden',
8221            ss: '%d Sekunden',
8222            m: processRelativeTime$2,
8223            mm: '%d Minuten',
8224            h: processRelativeTime$2,
8225            hh: '%d Stunden',
8226            d: processRelativeTime$2,
8227            dd: processRelativeTime$2,
8228            w: processRelativeTime$2,
8229            ww: '%d Wochen',
8230            M: processRelativeTime$2,
8231            MM: processRelativeTime$2,
8232            y: processRelativeTime$2,
8233            yy: processRelativeTime$2,
8234        },
8235        dayOfMonthOrdinalParse: /\d{1,2}\./,
8236        ordinal: '%d.',
8237        week: {
8238            dow: 1, // Monday is the first day of the week.
8239            doy: 4, // The week that contains Jan 4th is the first week of the year.
8240        },
8241    });
8242
8243    //! moment.js locale configuration
8244
8245    var months$5 = [
8246            'ޖެނުއަރީ',
8247            'ފެބްރުއަރީ',
8248            'މާރިޗު',
8249            'އޭޕްރީލު',
8250            'މޭ',
8251            'ޖޫން',
8252            'ޖުލައި',
8253            'އޯގަސްޓު',
8254            'ސެޕްޓެމްބަރު',
8255            'އޮކްޓޯބަރު',
8256            'ނޮވެމްބަރު',
8257            'ޑިސެމްބަރު',
8258        ],
8259        weekdays = [
8260            'އާދިއްތަ',
8261            'ހޯމަ',
8262            'އަންގާރަ',
8263            'ބުދަ',
8264            'ބުރާސްފަތި',
8265            'ހުކުރު',
8266            'ހޮނިހިރު',
8267        ];
8268
8269    hooks.defineLocale('dv', {
8270        months: months$5,
8271        monthsShort: months$5,
8272        weekdays: weekdays,
8273        weekdaysShort: weekdays,
8274        weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި'.split('_'),
8275        longDateFormat: {
8276            LT: 'HH:mm',
8277            LTS: 'HH:mm:ss',
8278            L: 'D/M/YYYY',
8279            LL: 'D MMMM YYYY',
8280            LLL: 'D MMMM YYYY HH:mm',
8281            LLLL: 'dddd D MMMM YYYY HH:mm',
8282        },
8283        meridiemParse: /މކ|މފ/,
8284        isPM: function (input) {
8285            return 'މފ' === input;
8286        },
8287        meridiem: function (hour, minute, isLower) {
8288            if (hour < 12) {
8289                return 'މކ';
8290            } else {
8291                return 'މފ';
8292            }
8293        },
8294        calendar: {
8295            sameDay: '[މިއަދު] LT',
8296            nextDay: '[މާދަމާ] LT',
8297            nextWeek: 'dddd LT',
8298            lastDay: '[އިއްޔެ] LT',
8299            lastWeek: '[ފާއިތުވި] dddd LT',
8300            sameElse: 'L',
8301        },
8302        relativeTime: {
8303            future: 'ތެރޭގައި %s',
8304            past: 'ކުރިން %s',
8305            s: 'ސިކުންތުކޮޅެއް',
8306            ss: 'd% ސިކުންތު',
8307            m: 'މިނިޓެއް',
8308            mm: 'މިނިޓު %d',
8309            h: 'ގަޑިއިރެއް',
8310            hh: 'ގަޑިއިރު %d',
8311            d: 'ދުވަހެއް',
8312            dd: 'ދުވަސް %d',
8313            M: 'މަހެއް',
8314            MM: 'މަސް %d',
8315            y: 'އަހަރެއް',
8316            yy: 'އަހަރު %d',
8317        },
8318        preparse: function (string) {
8319            return string.replace(/،/g, ',');
8320        },
8321        postformat: function (string) {
8322            return string.replace(/,/g, '،');
8323        },
8324        week: {
8325            dow: 7, // Sunday is the first day of the week.
8326            doy: 12, // The week that contains Jan 12th is the first week of the year.
8327        },
8328    });
8329
8330    //! moment.js locale configuration
8331
8332    function isFunction$1(input) {
8333        return (
8334            (typeof Function !== 'undefined' && input instanceof Function) ||
8335            Object.prototype.toString.call(input) === '[object Function]'
8336        );
8337    }
8338
8339    hooks.defineLocale('el', {
8340        monthsNominativeEl:
8341            'Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος'.split(
8342                '_'
8343            ),
8344        monthsGenitiveEl:
8345            'Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου'.split(
8346                '_'
8347            ),
8348        months: function (momentToFormat, format) {
8349            if (!momentToFormat) {
8350                return this._monthsNominativeEl;
8351            } else if (
8352                typeof format === 'string' &&
8353                /D/.test(format.substring(0, format.indexOf('MMMM')))
8354            ) {
8355                // if there is a day number before 'MMMM'
8356                return this._monthsGenitiveEl[momentToFormat.month()];
8357            } else {
8358                return this._monthsNominativeEl[momentToFormat.month()];
8359            }
8360        },
8361        monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ'.split('_'),
8362        weekdays: 'Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο'.split(
8363            '_'
8364        ),
8365        weekdaysShort: 'Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),
8366        weekdaysMin: 'Κυ_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),
8367        meridiem: function (hours, minutes, isLower) {
8368            if (hours > 11) {
8369                return isLower ? 'μμ' : 'ΜΜ';
8370            } else {
8371                return isLower ? 'πμ' : 'ΠΜ';
8372            }
8373        },
8374        isPM: function (input) {
8375            return (input + '').toLowerCase()[0] === 'μ';
8376        },
8377        meridiemParse: /[ΠΜ]\.?Μ?\.?/i,
8378        longDateFormat: {
8379            LT: 'h:mm A',
8380            LTS: 'h:mm:ss A',
8381            L: 'DD/MM/YYYY',
8382            LL: 'D MMMM YYYY',
8383            LLL: 'D MMMM YYYY h:mm A',
8384            LLLL: 'dddd, D MMMM YYYY h:mm A',
8385        },
8386        calendarEl: {
8387            sameDay: '[Σήμερα {}] LT',
8388            nextDay: '[Αύριο {}] LT',
8389            nextWeek: 'dddd [{}] LT',
8390            lastDay: '[Χθες {}] LT',
8391            lastWeek: function () {
8392                switch (this.day()) {
8393                    case 6:
8394                        return '[το προηγούμενο] dddd [{}] LT';
8395                    default:
8396                        return '[την προηγούμενη] dddd [{}] LT';
8397                }
8398            },
8399            sameElse: 'L',
8400        },
8401        calendar: function (key, mom) {
8402            var output = this._calendarEl[key],
8403                hours = mom && mom.hours();
8404            if (isFunction$1(output)) {
8405                output = output.apply(mom);
8406            }
8407            return output.replace('{}', hours % 12 === 1 ? 'στη' : 'στις');
8408        },
8409        relativeTime: {
8410            future: 'σε %s',
8411            past: '%s πριν',
8412            s: 'λίγα δευτερόλεπτα',
8413            ss: '%d δευτερόλεπτα',
8414            m: 'ένα λεπτό',
8415            mm: '%d λεπτά',
8416            h: 'μία ώρα',
8417            hh: '%d ώρες',
8418            d: 'μία μέρα',
8419            dd: '%d μέρες',
vendor: 16,384 bytes, lines 8420-8920
8420            M: 'ένας μήνας',
8421            MM: '%d μήνες',
8422            y: 'ένας χρόνος',
8423            yy: '%d χρόνια',
8424        },
8425        dayOfMonthOrdinalParse: /\d{1,2}η/,
8426        ordinal: '%dη',
8427        week: {
8428            dow: 1, // Monday is the first day of the week.
8429            doy: 4, // The week that contains Jan 4st is the first week of the year.
8430        },
8431    });
8432
8433    //! moment.js locale configuration
8434
8435    hooks.defineLocale('en-au', {
8436        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8437            '_'
8438        ),
8439        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8440        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8441            '_'
8442        ),
8443        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8444        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8445        longDateFormat: {
8446            LT: 'h:mm A',
8447            LTS: 'h:mm:ss A',
8448            L: 'DD/MM/YYYY',
8449            LL: 'D MMMM YYYY',
8450            LLL: 'D MMMM YYYY h:mm A',
8451            LLLL: 'dddd, D MMMM YYYY h:mm A',
8452        },
8453        calendar: {
8454            sameDay: '[Today at] LT',
8455            nextDay: '[Tomorrow at] LT',
8456            nextWeek: 'dddd [at] LT',
8457            lastDay: '[Yesterday at] LT',
8458            lastWeek: '[Last] dddd [at] LT',
8459            sameElse: 'L',
8460        },
8461        relativeTime: {
8462            future: 'in %s',
8463            past: '%s ago',
8464            s: 'a few seconds',
8465            ss: '%d seconds',
8466            m: 'a minute',
8467            mm: '%d minutes',
8468            h: 'an hour',
8469            hh: '%d hours',
8470            d: 'a day',
8471            dd: '%d days',
8472            M: 'a month',
8473            MM: '%d months',
8474            y: 'a year',
8475            yy: '%d years',
8476        },
8477        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8478        ordinal: function (number) {
8479            var b = number % 10,
8480                output =
8481                    ~~((number % 100) / 10) === 1
8482                        ? 'th'
8483                        : b === 1
8484                        ? 'st'
8485                        : b === 2
8486                        ? 'nd'
8487                        : b === 3
8488                        ? 'rd'
8489                        : 'th';
8490            return number + output;
8491        },
8492        week: {
8493            dow: 0, // Sunday is the first day of the week.
8494            doy: 4, // The week that contains Jan 4th is the first week of the year.
8495        },
8496    });
8497
8498    //! moment.js locale configuration
8499
8500    hooks.defineLocale('en-ca', {
8501        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8502            '_'
8503        ),
8504        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8505        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8506            '_'
8507        ),
8508        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8509        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8510        longDateFormat: {
8511            LT: 'h:mm A',
8512            LTS: 'h:mm:ss A',
8513            L: 'YYYY-MM-DD',
8514            LL: 'MMMM D, YYYY',
8515            LLL: 'MMMM D, YYYY h:mm A',
8516            LLLL: 'dddd, MMMM D, YYYY h:mm A',
8517        },
8518        calendar: {
8519            sameDay: '[Today at] LT',
8520            nextDay: '[Tomorrow at] LT',
8521            nextWeek: 'dddd [at] LT',
8522            lastDay: '[Yesterday at] LT',
8523            lastWeek: '[Last] dddd [at] LT',
8524            sameElse: 'L',
8525        },
8526        relativeTime: {
8527            future: 'in %s',
8528            past: '%s ago',
8529            s: 'a few seconds',
8530            ss: '%d seconds',
8531            m: 'a minute',
8532            mm: '%d minutes',
8533            h: 'an hour',
8534            hh: '%d hours',
8535            d: 'a day',
8536            dd: '%d days',
8537            M: 'a month',
8538            MM: '%d months',
8539            y: 'a year',
8540            yy: '%d years',
8541        },
8542        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8543        ordinal: function (number) {
8544            var b = number % 10,
8545                output =
8546                    ~~((number % 100) / 10) === 1
8547                        ? 'th'
8548                        : b === 1
8549                        ? 'st'
8550                        : b === 2
8551                        ? 'nd'
8552                        : b === 3
8553                        ? 'rd'
8554                        : 'th';
8555            return number + output;
8556        },
8557    });
8558
8559    //! moment.js locale configuration
8560
8561    hooks.defineLocale('en-gb', {
8562        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8563            '_'
8564        ),
8565        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8566        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8567            '_'
8568        ),
8569        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8570        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8571        longDateFormat: {
8572            LT: 'HH:mm',
8573            LTS: 'HH:mm:ss',
8574            L: 'DD/MM/YYYY',
8575            LL: 'D MMMM YYYY',
8576            LLL: 'D MMMM YYYY HH:mm',
8577            LLLL: 'dddd, D MMMM YYYY HH:mm',
8578        },
8579        calendar: {
8580            sameDay: '[Today at] LT',
8581            nextDay: '[Tomorrow at] LT',
8582            nextWeek: 'dddd [at] LT',
8583            lastDay: '[Yesterday at] LT',
8584            lastWeek: '[Last] dddd [at] LT',
8585            sameElse: 'L',
8586        },
8587        relativeTime: {
8588            future: 'in %s',
8589            past: '%s ago',
8590            s: 'a few seconds',
8591            ss: '%d seconds',
8592            m: 'a minute',
8593            mm: '%d minutes',
8594            h: 'an hour',
8595            hh: '%d hours',
8596            d: 'a day',
8597            dd: '%d days',
8598            M: 'a month',
8599            MM: '%d months',
8600            y: 'a year',
8601            yy: '%d years',
8602        },
8603        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8604        ordinal: function (number) {
8605            var b = number % 10,
8606                output =
8607                    ~~((number % 100) / 10) === 1
8608                        ? 'th'
8609                        : b === 1
8610                        ? 'st'
8611                        : b === 2
8612                        ? 'nd'
8613                        : b === 3
8614                        ? 'rd'
8615                        : 'th';
8616            return number + output;
8617        },
8618        week: {
8619            dow: 1, // Monday is the first day of the week.
8620            doy: 4, // The week that contains Jan 4th is the first week of the year.
8621        },
8622    });
8623
8624    //! moment.js locale configuration
8625
8626    hooks.defineLocale('en-ie', {
8627        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8628            '_'
8629        ),
8630        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8631        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8632            '_'
8633        ),
8634        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8635        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8636        longDateFormat: {
8637            LT: 'HH:mm',
8638            LTS: 'HH:mm:ss',
8639            L: 'DD/MM/YYYY',
8640            LL: 'D MMMM YYYY',
8641            LLL: 'D MMMM YYYY HH:mm',
8642            LLLL: 'dddd D MMMM YYYY HH:mm',
8643        },
8644        calendar: {
8645            sameDay: '[Today at] LT',
8646            nextDay: '[Tomorrow at] LT',
8647            nextWeek: 'dddd [at] LT',
8648            lastDay: '[Yesterday at] LT',
8649            lastWeek: '[Last] dddd [at] LT',
8650            sameElse: 'L',
8651        },
8652        relativeTime: {
8653            future: 'in %s',
8654            past: '%s ago',
8655            s: 'a few seconds',
8656            ss: '%d seconds',
8657            m: 'a minute',
8658            mm: '%d minutes',
8659            h: 'an hour',
8660            hh: '%d hours',
8661            d: 'a day',
8662            dd: '%d days',
8663            M: 'a month',
8664            MM: '%d months',
8665            y: 'a year',
8666            yy: '%d years',
8667        },
8668        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8669        ordinal: function (number) {
8670            var b = number % 10,
8671                output =
8672                    ~~((number % 100) / 10) === 1
8673                        ? 'th'
8674                        : b === 1
8675                        ? 'st'
8676                        : b === 2
8677                        ? 'nd'
8678                        : b === 3
8679                        ? 'rd'
8680                        : 'th';
8681            return number + output;
8682        },
8683        week: {
8684            dow: 1, // Monday is the first day of the week.
8685            doy: 4, // The week that contains Jan 4th is the first week of the year.
8686        },
8687    });
8688
8689    //! moment.js locale configuration
8690
8691    hooks.defineLocale('en-il', {
8692        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8693            '_'
8694        ),
8695        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8696        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8697            '_'
8698        ),
8699        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8700        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8701        longDateFormat: {
8702            LT: 'HH:mm',
8703            LTS: 'HH:mm:ss',
8704            L: 'DD/MM/YYYY',
8705            LL: 'D MMMM YYYY',
8706            LLL: 'D MMMM YYYY HH:mm',
8707            LLLL: 'dddd, D MMMM YYYY HH:mm',
8708        },
8709        calendar: {
8710            sameDay: '[Today at] LT',
8711            nextDay: '[Tomorrow at] LT',
8712            nextWeek: 'dddd [at] LT',
8713            lastDay: '[Yesterday at] LT',
8714            lastWeek: '[Last] dddd [at] LT',
8715            sameElse: 'L',
8716        },
8717        relativeTime: {
8718            future: 'in %s',
8719            past: '%s ago',
8720            s: 'a few seconds',
8721            ss: '%d seconds',
8722            m: 'a minute',
8723            mm: '%d minutes',
8724            h: 'an hour',
8725            hh: '%d hours',
8726            d: 'a day',
8727            dd: '%d days',
8728            M: 'a month',
8729            MM: '%d months',
8730            y: 'a year',
8731            yy: '%d years',
8732        },
8733        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8734        ordinal: function (number) {
8735            var b = number % 10,
8736                output =
8737                    ~~((number % 100) / 10) === 1
8738                        ? 'th'
8739                        : b === 1
8740                        ? 'st'
8741                        : b === 2
8742                        ? 'nd'
8743                        : b === 3
8744                        ? 'rd'
8745                        : 'th';
8746            return number + output;
8747        },
8748    });
8749
8750    //! moment.js locale configuration
8751
8752    hooks.defineLocale('en-in', {
8753        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8754            '_'
8755        ),
8756        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8757        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8758            '_'
8759        ),
8760        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8761        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8762        longDateFormat: {
8763            LT: 'h:mm A',
8764            LTS: 'h:mm:ss A',
8765            L: 'DD/MM/YYYY',
8766            LL: 'D MMMM YYYY',
8767            LLL: 'D MMMM YYYY h:mm A',
8768            LLLL: 'dddd, D MMMM YYYY h:mm A',
8769        },
8770        calendar: {
8771            sameDay: '[Today at] LT',
8772            nextDay: '[Tomorrow at] LT',
8773            nextWeek: 'dddd [at] LT',
8774            lastDay: '[Yesterday at] LT',
8775            lastWeek: '[Last] dddd [at] LT',
8776            sameElse: 'L',
8777        },
8778        relativeTime: {
8779            future: 'in %s',
8780            past: '%s ago',
8781            s: 'a few seconds',
8782            ss: '%d seconds',
8783            m: 'a minute',
8784            mm: '%d minutes',
8785            h: 'an hour',
8786            hh: '%d hours',
8787            d: 'a day',
8788            dd: '%d days',
8789            M: 'a month',
8790            MM: '%d months',
8791            y: 'a year',
8792            yy: '%d years',
8793        },
8794        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8795        ordinal: function (number) {
8796            var b = number % 10,
8797                output =
8798                    ~~((number % 100) / 10) === 1
8799                        ? 'th'
8800                        : b === 1
8801                        ? 'st'
8802                        : b === 2
8803                        ? 'nd'
8804                        : b === 3
8805                        ? 'rd'
8806                        : 'th';
8807            return number + output;
8808        },
8809        week: {
8810            dow: 0, // Sunday is the first day of the week.
8811            doy: 6, // The week that contains Jan 1st is the first week of the year.
8812        },
8813    });
8814
8815    //! moment.js locale configuration
8816
8817    hooks.defineLocale('en-nz', {
8818        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8819            '_'
8820        ),
8821        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8822        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8823            '_'
8824        ),
8825        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8826        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8827        longDateFormat: {
8828            LT: 'h:mm A',
8829            LTS: 'h:mm:ss A',
8830            L: 'DD/MM/YYYY',
8831            LL: 'D MMMM YYYY',
8832            LLL: 'D MMMM YYYY h:mm A',
8833            LLLL: 'dddd, D MMMM YYYY h:mm A',
8834        },
8835        calendar: {
8836            sameDay: '[Today at] LT',
8837            nextDay: '[Tomorrow at] LT',
8838            nextWeek: 'dddd [at] LT',
8839            lastDay: '[Yesterday at] LT',
8840            lastWeek: '[Last] dddd [at] LT',
8841            sameElse: 'L',
8842        },
8843        relativeTime: {
8844            future: 'in %s',
8845            past: '%s ago',
8846            s: 'a few seconds',
8847            ss: '%d seconds',
8848            m: 'a minute',
8849            mm: '%d minutes',
8850            h: 'an hour',
8851            hh: '%d hours',
8852            d: 'a day',
8853            dd: '%d days',
8854            M: 'a month',
8855            MM: '%d months',
8856            y: 'a year',
8857            yy: '%d years',
8858        },
8859        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8860        ordinal: function (number) {
8861            var b = number % 10,
8862                output =
8863                    ~~((number % 100) / 10) === 1
8864                        ? 'th'
8865                        : b === 1
8866                        ? 'st'
8867                        : b === 2
8868                        ? 'nd'
8869                        : b === 3
8870                        ? 'rd'
8871                        : 'th';
8872            return number + output;
8873        },
8874        week: {
8875            dow: 1, // Monday is the first day of the week.
8876            doy: 4, // The week that contains Jan 4th is the first week of the year.
8877        },
8878    });
8879
8880    //! moment.js locale configuration
8881
8882    hooks.defineLocale('en-sg', {
8883        months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(
8884            '_'
8885        ),
8886        monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
8887        weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(
8888            '_'
8889        ),
8890        weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),
8891        weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
8892        longDateFormat: {
8893            LT: 'HH:mm',
8894            LTS: 'HH:mm:ss',
8895            L: 'DD/MM/YYYY',
8896            LL: 'D MMMM YYYY',
8897            LLL: 'D MMMM YYYY HH:mm',
8898            LLLL: 'dddd, D MMMM YYYY HH:mm',
8899        },
8900        calendar: {
8901            sameDay: '[Today at] LT',
8902            nextDay: '[Tomorrow at] LT',
8903            nextWeek: 'dddd [at] LT',
8904            lastDay: '[Yesterday at] LT',
8905            lastWeek: '[Last] dddd [at] LT',
8906            sameElse: 'L',
8907        },
8908        relativeTime: {
8909            future: 'in %s',
8910            past: '%s ago',
8911            s: 'a few seconds',
8912            ss: '%d seconds',
8913            m: 'a minute',
8914            mm: '%d minutes',
8915            h: 'an hour',
8916            hh: '%d hours',
8917            d: 'a day',
8918            dd: '%d days',
8919            M: 'a month',
8920          
vendor: 16,384 bytes, lines 8920-9378
8920  MM: '%d months',
8921            y: 'a year',
8922            yy: '%d years',
8923        },
8924        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
8925        ordinal: function (number) {
8926            var b = number % 10,
8927                output =
8928                    ~~((number % 100) / 10) === 1
8929                        ? 'th'
8930                        : b === 1
8931                        ? 'st'
8932                        : b === 2
8933                        ? 'nd'
8934                        : b === 3
8935                        ? 'rd'
8936                        : 'th';
8937            return number + output;
8938        },
8939        week: {
8940            dow: 1, // Monday is the first day of the week.
8941            doy: 4, // The week that contains Jan 4th is the first week of the year.
8942        },
8943    });
8944
8945    //! moment.js locale configuration
8946
8947    hooks.defineLocale('eo', {
8948        months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split(
8949            '_'
8950        ),
8951        monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅ­g_sept_okt_nov_dec'.split('_'),
8952        weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato'.split('_'),
8953        weekdaysShort: 'dim_lun_mard_merk_ĵaŭ_ven_sab'.split('_'),
8954        weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),
8955        longDateFormat: {
8956            LT: 'HH:mm',
8957            LTS: 'HH:mm:ss',
8958            L: 'YYYY-MM-DD',
8959            LL: '[la] D[-an de] MMMM, YYYY',
8960            LLL: '[la] D[-an de] MMMM, YYYY HH:mm',
8961            LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',
8962            llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',
8963        },
8964        meridiemParse: /[ap]\.t\.m/i,
8965        isPM: function (input) {
8966            return input.charAt(0).toLowerCase() === 'p';
8967        },
8968        meridiem: function (hours, minutes, isLower) {
8969            if (hours > 11) {
8970                return isLower ? 'p.t.m.' : 'P.T.M.';
8971            } else {
8972                return isLower ? 'a.t.m.' : 'A.T.M.';
8973            }
8974        },
8975        calendar: {
8976            sameDay: '[HodiaÅ­ je] LT',
8977            nextDay: '[MorgaÅ­ je] LT',
8978            nextWeek: 'dddd[n je] LT',
8979            lastDay: '[HieraÅ­ je] LT',
8980            lastWeek: '[pasintan] dddd[n je] LT',
8981            sameElse: 'L',
8982        },
8983        relativeTime: {
8984            future: 'post %s',
8985            past: 'antaÅ­ %s',
8986            s: 'kelkaj sekundoj',
8987            ss: '%d sekundoj',
8988            m: 'unu minuto',
8989            mm: '%d minutoj',
8990            h: 'unu horo',
8991            hh: '%d horoj',
8992            d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo
8993            dd: '%d tagoj',
8994            M: 'unu monato',
8995            MM: '%d monatoj',
8996            y: 'unu jaro',
8997            yy: '%d jaroj',
8998        },
8999        dayOfMonthOrdinalParse: /\d{1,2}a/,
9000        ordinal: '%da',
9001        week: {
9002            dow: 1, // Monday is the first day of the week.
9003            doy: 7, // The week that contains Jan 7th is the first week of the year.
9004        },
9005    });
9006
9007    //! moment.js locale configuration
9008
9009    var monthsShortDot =
9010            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9011                '_'
9012            ),
9013        monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9014        monthsParse$2 = [
9015            /^ene/i,
9016            /^feb/i,
9017            /^mar/i,
9018            /^abr/i,
9019            /^may/i,
9020            /^jun/i,
9021            /^jul/i,
9022            /^ago/i,
9023            /^sep/i,
9024            /^oct/i,
9025            /^nov/i,
9026            /^dic/i,
9027        ],
9028        monthsRegex$3 =
9029            /^(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;
9030
9031    hooks.defineLocale('es-do', {
9032        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9033            '_'
9034        ),
9035        monthsShort: function (m, format) {
9036            if (!m) {
9037                return monthsShortDot;
9038            } else if (/-MMM-/.test(format)) {
9039                return monthsShort$1[m.month()];
9040            } else {
9041                return monthsShortDot[m.month()];
9042            }
9043        },
9044        monthsRegex: monthsRegex$3,
9045        monthsShortRegex: monthsRegex$3,
9046        monthsStrictRegex:
9047            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9048        monthsShortStrictRegex:
9049            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9050        monthsParse: monthsParse$2,
9051        longMonthsParse: monthsParse$2,
9052        shortMonthsParse: monthsParse$2,
9053        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9054        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9055        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9056        weekdaysParseExact: true,
9057        longDateFormat: {
9058            LT: 'h:mm A',
9059            LTS: 'h:mm:ss A',
9060            L: 'DD/MM/YYYY',
9061            LL: 'D [de] MMMM [de] YYYY',
9062            LLL: 'D [de] MMMM [de] YYYY h:mm A',
9063            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9064        },
9065        calendar: {
9066            sameDay: function () {
9067                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9068            },
9069            nextDay: function () {
9070                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9071            },
9072            nextWeek: function () {
9073                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9074            },
9075            lastDay: function () {
9076                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9077            },
9078            lastWeek: function () {
9079                return (
9080                    '[el] dddd [pasado a la' +
9081                    (this.hours() !== 1 ? 's' : '') +
9082                    '] LT'
9083                );
9084            },
9085            sameElse: 'L',
9086        },
9087        relativeTime: {
9088            future: 'en %s',
9089            past: 'hace %s',
9090            s: 'unos segundos',
9091            ss: '%d segundos',
9092            m: 'un minuto',
9093            mm: '%d minutos',
9094            h: 'una hora',
9095            hh: '%d horas',
9096            d: 'un día',
9097            dd: '%d días',
9098            w: 'una semana',
9099            ww: '%d semanas',
9100            M: 'un mes',
9101            MM: '%d meses',
9102            y: 'un año',
9103            yy: '%d años',
9104        },
9105        dayOfMonthOrdinalParse: /\d{1,2}º/,
9106        ordinal: '%dº',
9107        week: {
9108            dow: 1, // Monday is the first day of the week.
9109            doy: 4, // The week that contains Jan 4th is the first week of the year.
9110        },
9111    });
9112
9113    //! moment.js locale configuration
9114
9115    var monthsShortDot$1 =
9116            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9117                '_'
9118            ),
9119        monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9120        monthsParse$3 = [
9121            /^ene/i,
9122            /^feb/i,
9123            /^mar/i,
9124            /^abr/i,
9125            /^may/i,
9126            /^jun/i,
9127            /^jul/i,
9128            /^ago/i,
9129            /^sep/i,
9130            /^oct/i,
9131            /^nov/i,
9132            /^dic/i,
9133        ],
9134        monthsRegex$4 =
9135            /^(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;
9136
9137    hooks.defineLocale('es-mx', {
9138        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9139            '_'
9140        ),
9141        monthsShort: function (m, format) {
9142            if (!m) {
9143                return monthsShortDot$1;
9144            } else if (/-MMM-/.test(format)) {
9145                return monthsShort$2[m.month()];
9146            } else {
9147                return monthsShortDot$1[m.month()];
9148            }
9149        },
9150        monthsRegex: monthsRegex$4,
9151        monthsShortRegex: monthsRegex$4,
9152        monthsStrictRegex:
9153            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9154        monthsShortStrictRegex:
9155            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9156        monthsParse: monthsParse$3,
9157        longMonthsParse: monthsParse$3,
9158        shortMonthsParse: monthsParse$3,
9159        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9160        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9161        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9162        weekdaysParseExact: true,
9163        longDateFormat: {
9164            LT: 'H:mm',
9165            LTS: 'H:mm:ss',
9166            L: 'DD/MM/YYYY',
9167            LL: 'D [de] MMMM [de] YYYY',
9168            LLL: 'D [de] MMMM [de] YYYY H:mm',
9169            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9170        },
9171        calendar: {
9172            sameDay: function () {
9173                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9174            },
9175            nextDay: function () {
9176                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9177            },
9178            nextWeek: function () {
9179                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9180            },
9181            lastDay: function () {
9182                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9183            },
9184            lastWeek: function () {
9185                return (
9186                    '[el] dddd [pasado a la' +
9187                    (this.hours() !== 1 ? 's' : '') +
9188                    '] LT'
9189                );
9190            },
9191            sameElse: 'L',
9192        },
9193        relativeTime: {
9194            future: 'en %s',
9195            past: 'hace %s',
9196            s: 'unos segundos',
9197            ss: '%d segundos',
9198            m: 'un minuto',
9199            mm: '%d minutos',
9200            h: 'una hora',
9201            hh: '%d horas',
9202            d: 'un día',
9203            dd: '%d días',
9204            w: 'una semana',
9205            ww: '%d semanas',
9206            M: 'un mes',
9207            MM: '%d meses',
9208            y: 'un año',
9209            yy: '%d años',
9210        },
9211        dayOfMonthOrdinalParse: /\d{1,2}º/,
9212        ordinal: '%dº',
9213        week: {
9214            dow: 0, // Sunday is the first day of the week.
9215            doy: 4, // The week that contains Jan 4th is the first week of the year.
9216        },
9217        invalidDate: 'Fecha inválida',
9218    });
9219
9220    //! moment.js locale configuration
9221
9222    var monthsShortDot$2 =
9223            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9224                '_'
9225            ),
9226        monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9227        monthsParse$4 = [
9228            /^ene/i,
9229            /^feb/i,
9230            /^mar/i,
9231            /^abr/i,
9232            /^may/i,
9233            /^jun/i,
9234            /^jul/i,
9235            /^ago/i,
9236            /^sep/i,
9237            /^oct/i,
9238            /^nov/i,
9239            /^dic/i,
9240        ],
9241        monthsRegex$5 =
9242            /^(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;
9243
9244    hooks.defineLocale('es-us', {
9245        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9246            '_'
9247        ),
9248        monthsShort: function (m, format) {
9249            if (!m) {
9250                return monthsShortDot$2;
9251            } else if (/-MMM-/.test(format)) {
9252                return monthsShort$3[m.month()];
9253            } else {
9254                return monthsShortDot$2[m.month()];
9255            }
9256        },
9257        monthsRegex: monthsRegex$5,
9258        monthsShortRegex: monthsRegex$5,
9259        monthsStrictRegex:
9260            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9261        monthsShortStrictRegex:
9262            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9263        monthsParse: monthsParse$4,
9264        longMonthsParse: monthsParse$4,
9265        shortMonthsParse: monthsParse$4,
9266        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9267        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9268        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9269        weekdaysParseExact: true,
9270        longDateFormat: {
9271            LT: 'h:mm A',
9272            LTS: 'h:mm:ss A',
9273            L: 'MM/DD/YYYY',
9274            LL: 'D [de] MMMM [de] YYYY',
9275            LLL: 'D [de] MMMM [de] YYYY h:mm A',
9276            LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',
9277        },
9278        calendar: {
9279            sameDay: function () {
9280                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9281            },
9282            nextDay: function () {
9283                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9284            },
9285            nextWeek: function () {
9286                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9287            },
9288            lastDay: function () {
9289                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9290            },
9291            lastWeek: function () {
9292                return (
9293                    '[el] dddd [pasado a la' +
9294                    (this.hours() !== 1 ? 's' : '') +
9295                    '] LT'
9296                );
9297            },
9298            sameElse: 'L',
9299        },
9300        relativeTime: {
9301            future: 'en %s',
9302            past: 'hace %s',
9303            s: 'unos segundos',
9304            ss: '%d segundos',
9305            m: 'un minuto',
9306            mm: '%d minutos',
9307            h: 'una hora',
9308            hh: '%d horas',
9309            d: 'un día',
9310            dd: '%d días',
9311            w: 'una semana',
9312            ww: '%d semanas',
9313            M: 'un mes',
9314            MM: '%d meses',
9315            y: 'un año',
9316            yy: '%d años',
9317        },
9318        dayOfMonthOrdinalParse: /\d{1,2}º/,
9319        ordinal: '%dº',
9320        week: {
9321            dow: 0, // Sunday is the first day of the week.
9322            doy: 6, // The week that contains Jan 6th is the first week of the year.
9323        },
9324    });
9325
9326    //! moment.js locale configuration
9327
9328    var monthsShortDot$3 =
9329            'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(
9330                '_'
9331            ),
9332        monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),
9333        monthsParse$5 = [
9334            /^ene/i,
9335            /^feb/i,
9336            /^mar/i,
9337            /^abr/i,
9338            /^may/i,
9339            /^jun/i,
9340            /^jul/i,
9341            /^ago/i,
9342            /^sep/i,
9343            /^oct/i,
9344            /^nov/i,
9345            /^dic/i,
9346        ],
9347        monthsRegex$6 =
9348            /^(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;
9349
9350    hooks.defineLocale('es', {
9351        months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(
9352            '_'
9353        ),
9354        monthsShort: function (m, format) {
9355            if (!m) {
9356                return monthsShortDot$3;
9357            } else if (/-MMM-/.test(format)) {
9358                return monthsShort$4[m.month()];
9359            } else {
9360                return monthsShortDot$3[m.month()];
9361            }
9362        },
9363        monthsRegex: monthsRegex$6,
9364        monthsShortRegex: monthsRegex$6,
9365        monthsStrictRegex:
9366            /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,
9367        monthsShortStrictRegex:
9368            /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i,
9369        monthsParse: monthsParse$5,
9370        longMonthsParse: monthsParse$5,
9371        shortMonthsParse: monthsParse$5,
9372        weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),
9373        weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),
9374        weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),
9375        weekdaysParseExact: true,
9376        longDateFormat: {
9377            LT: 'H:mm',
9378 
9378           LTS: 'H:mm:ss',
9379            L: 'DD/MM/YYYY',
9380            LL: 'D [de] MMMM [de] YYYY',
9381            LLL: 'D [de] MMMM [de] YYYY H:mm',
9382            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
9383        },
9384        calendar: {
9385            sameDay: function () {
9386                return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9387            },
9388            nextDay: function () {
9389                return '[mañana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9390            },
9391            nextWeek: function () {
9392                return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9393            },
9394            lastDay: function () {
9395                return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';
9396            },
9397            lastWeek: function () {
9398                return (
9399                    '[el] dddd [pasado a la' +
9400                    (this.hours() !== 1 ? 's' : '') +
9401                    '] LT'
9402                );
9403            },
9404            sameElse: 'L',
9405        },
9406        relativeTime: {
9407            future: 'en %s',
9408            past: 'hace %s',
9409            s: 'unos segundos',
9410            ss: '%d segundos',
9411            m: 'un minuto',
9412            mm: '%d minutos',
9413            h: 'una hora',
9414            hh: '%d horas',
9415            d: 'un día',
9416            dd: '%d días',
9417            w: 'una semana',
9418            ww: '%d semanas',
9419            M: 'un mes',
9420            MM: '%d meses',
9421            y: 'un año',
9422            yy: '%d años',
9423        },
9424        dayOfMonthOrdinalParse: /\d{1,2}º/,
9425        ordinal: '%dº',
9426        week: {
9427            dow: 1, // Monday is the first day of the week.
9428            doy: 4, // The week that contains Jan 4th is the first week of the year.
9429        },
9430        invalidDate: 'Fecha inválida',
9431    });
9432
9433    //! moment.js locale configuration
9434
9435    function processRelativeTime$3(number, withoutSuffix, key, isFuture) {
9436        var format = {
9437            s: ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
9438            ss: [number + 'sekundi', number + 'sekundit'],
9439            m: ['ühe minuti', 'üks minut'],
9440            mm: [number + ' minuti', number + ' minutit'],
9441            h: ['ühe tunni', 'tund aega', 'üks tund'],
9442            hh: [number + ' tunni', number + ' tundi'],
9443            d: ['ühe päeva', 'üks päev'],
9444            M: ['kuu aja', 'kuu aega', 'üks kuu'],
9445            MM: [number + ' kuu', number + ' kuud'],
9446            y: ['ühe aasta', 'aasta', 'üks aasta'],
9447            yy: [number + ' aasta', number + ' aastat'],
9448        };
9449        if (withoutSuffix) {
9450            return format[key][2] ? format[key][2] : format[key][1];
9451        }
9452        return isFuture ? format[key][0] : format[key][1];
9453    }
9454
9455    hooks.defineLocale('et', {
9456        months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(
9457            '_'
9458        ),
9459        monthsShort:
9460            'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),
9461        weekdays:
9462            'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split(
9463                '_'
9464            ),
9465        weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),
9466        weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),
9467        longDateFormat: {
9468            LT: 'H:mm',
9469            LTS: 'H:mm:ss',
9470            L: 'DD.MM.YYYY',
9471            LL: 'D. MMMM YYYY',
9472            LLL: 'D. MMMM YYYY H:mm',
9473            LLLL: 'dddd, D. MMMM YYYY H:mm',
9474        },
9475        calendar: {
9476            sameDay: '[Täna,] LT',
9477            nextDay: '[Homme,] LT',
9478            nextWeek: '[Järgmine] dddd LT',
9479            lastDay: '[Eile,] LT',
9480            lastWeek: '[Eelmine] dddd LT',
9481            sameElse: 'L',
9482        },
9483        relativeTime: {
9484            future: '%s pärast',
9485            past: '%s tagasi',
9486            s: processRelativeTime$3,
9487            ss: processRelativeTime$3,
9488            m: processRelativeTime$3,
9489            mm: processRelativeTime$3,
9490            h: processRelativeTime$3,
9491            hh: processRelativeTime$3,
9492            d: processRelativeTime$3,
9493            dd: '%d päeva',
9494            M: processRelativeTime$3,
9495            MM: processRelativeTime$3,
9496            y: processRelativeTime$3,
9497            yy: processRelativeTime$3,
9498        },
9499        dayOfMonthOrdinalParse: /\d{1,2}\./,
9500        ordinal: '%d.',
9501        week: {
9502            dow: 1, // Monday is the first day of the week.
9503            doy: 4, // The week that contains Jan 4th is the first week of the year.
9504        },
9505    });
9506
9507    //! moment.js locale configuration
9508
9509    hooks.defineLocale('eu', {
9510        months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(
9511            '_'
9512        ),
9513        monthsShort:
9514            'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(
9515                '_'
9516            ),
9517        monthsParseExact: true,
9518        weekdays:
9519            'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(
9520                '_'
9521            ),
9522        weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),
9523        weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),
9524        weekdaysParseExact: true,
9525        longDateFormat: {
9526            LT: 'HH:mm',
9527            LTS: 'HH:mm:ss',
9528            L: 'YYYY-MM-DD',
9529            LL: 'YYYY[ko] MMMM[ren] D[a]',
9530            LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',
9531            LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',
9532            l: 'YYYY-M-D',
9533            ll: 'YYYY[ko] MMM D[a]',
9534            lll: 'YYYY[ko] MMM D[a] HH:mm',
9535            llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',
9536        },
9537        calendar: {
9538            sameDay: '[gaur] LT[etan]',
9539            nextDay: '[bihar] LT[etan]',
9540            nextWeek: 'dddd LT[etan]',
9541            lastDay: '[atzo] LT[etan]',
9542            lastWeek: '[aurreko] dddd LT[etan]',
9543            sameElse: 'L',
9544        },
9545        relativeTime: {
9546            future: '%s barru',
9547            past: 'duela %s',
9548            s: 'segundo batzuk',
9549            ss: '%d segundo',
9550            m: 'minutu bat',
9551            mm: '%d minutu',
9552            h: 'ordu bat',
9553            hh: '%d ordu',
9554            d: 'egun bat',
9555            dd: '%d egun',
9556            M: 'hilabete bat',
9557            MM: '%d hilabete',
9558            y: 'urte bat',
9559            yy: '%d urte',
9560        },
9561        dayOfMonthOrdinalParse: /\d{1,2}\./,
9562        ordinal: '%d.',
9563        week: {
9564            dow: 1, // Monday is the first day of the week.
9565            doy: 7, // The week that contains Jan 7th is the first week of the year.
9566        },
9567    });
9568
9569    //! moment.js locale configuration
9570
9571    var symbolMap$6 = {
9572            1: 'Û±',
9573            2: 'Û²',
9574            3: 'Û³',
9575            4: 'Û´',
9576            5: 'Ûµ',
9577            6: 'Û¶',
9578            7: 'Û·',
9579            8: 'Û¸',
9580            9: 'Û¹',
9581            0: 'Û°',
9582        },
9583        numberMap$5 = {
9584            'Û±': '1',
9585            'Û²': '2',
9586            'Û³': '3',
9587            'Û´': '4',
9588            'Ûµ': '5',
9589            'Û¶': '6',
9590            'Û·': '7',
9591            'Û¸': '8',
9592            'Û¹': '9',
9593            'Û°': '0',
9594        };
9595
9596    hooks.defineLocale('fa', {
9597        months: 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9598            '_'
9599        ),
9600        monthsShort:
9601            'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split(
9602                '_'
9603            ),
9604        weekdays:
9605            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9606                '_'
9607            ),
9608        weekdaysShort:
9609            'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split(
9610                '_'
9611            ),
9612        weekdaysMin: 'ی_د_س_چ_پ_ج_ش'.split('_'),
9613        weekdaysParseExact: true,
9614        longDateFormat: {
9615            LT: 'HH:mm',
9616            LTS: 'HH:mm:ss',
9617            L: 'DD/MM/YYYY',
9618            LL: 'D MMMM YYYY',
9619            LLL: 'D MMMM YYYY HH:mm',
9620            LLLL: 'dddd, D MMMM YYYY HH:mm',
9621        },
9622        meridiemParse: /قبل از ظهر|بعد از ظهر/,
9623        isPM: function (input) {
9624            return /بعد از ظهر/.test(input);
9625        },
9626        meridiem: function (hour, minute, isLower) {
9627            if (hour < 12) {
9628                return 'قبل از ظهر';
9629            } else {
9630                return 'بعد از ظهر';
9631            }
9632        },
9633        calendar: {
9634            sameDay: '[امروز ساعت] LT',
9635            nextDay: '[فردا ساعت] LT',
9636            nextWeek: 'dddd [ساعت] LT',
9637            lastDay: '[دیروز ساعت] LT',
9638            lastWeek: 'dddd [پیش] [ساعت] LT',
9639            sameElse: 'L',
9640        },
9641        relativeTime: {
9642            future: 'در %s',
9643            past: '%s پیش',
9644            s: 'چند ثانیه',
9645            ss: '%d ثانیه',
9646            m: 'یک دقیقه',
9647            mm: '%d دقیقه',
9648            h: 'یک ساعت',
9649            hh: '%d ساعت',
9650            d: 'یک روز',
9651            dd: '%d روز',
9652            M: 'یک ماه',
9653            MM: '%d ماه',
9654            y: 'یک سال',
9655            yy: '%d سال',
9656        },
9657        preparse: function (string) {
9658            return string
9659                .replace(/[Û°-Û¹]/g, function (match) {
9660                    return numberMap$5[match];
9661                })
9662                .replace(/،/g, ',');
9663        },
9664        postformat: function (string) {
9665            return string
9666                .replace(/\d/g, function (match) {
9667                    return symbolMap$6[match];
9668                })
9669                .replace(/,/g, '،');
9670        },
9671        dayOfMonthOrdinalParse: /\d{1,2}م/,
9672        ordinal: '%dم',
9673        week: {
9674            dow: 6, // Saturday is the first day of the week.
9675            doy: 12, // The week that contains Jan 12th is the first week of the year.
9676        },
9677    });
9678
9679    //! moment.js locale configuration
9680
9681    var numbersPast =
9682            'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(
9683                ' '
9684            ),
9685        numbersFuture = [
9686            'nolla',
9687            'yhden',
9688            'kahden',
9689            'kolmen',
9690            'neljän',
9691            'viiden',
9692            'kuuden',
9693            numbersPast[7],
9694            numbersPast[8],
9695            numbersPast[9],
9696        ];
9697    function translate$2(number, withoutSuffix, key, isFuture) {
9698        var result = '';
9699        switch (key) {
9700            case 's':
9701                return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
9702            case 'ss':
9703                result = isFuture ? 'sekunnin' : 'sekuntia';
9704                break;
9705            case 'm':
9706                return isFuture ? 'minuutin' : 'minuutti';
9707            case 'mm':
9708                result = isFuture ? 'minuutin' : 'minuuttia';
9709                break;
9710            case 'h':
9711                return isFuture ? 'tunnin' : 'tunti';
9712            case 'hh':
9713                result = isFuture ? 'tunnin' : 'tuntia';
9714                break;
9715            case 'd':
9716                return isFuture ? 'päivän' : 'päivä';
9717            case 'dd':
9718                result = isFuture ? 'päivän' : 'päivää';
9719                break;
9720            case 'M':
9721                return isFuture ? 'kuukauden' : 'kuukausi';
9722            case 'MM':
9723                result = isFuture ? 'kuukauden' : 'kuukautta';
9724                break;
9725            case 'y':
9726                return isFuture ? 'vuoden' : 'vuosi';
9727            case 'yy':
9728                result = isFuture ? 'vuoden' : 'vuotta';
9729                break;
9730        }
9731        result = verbalNumber(number, isFuture) + ' ' + result;
9732        return result;
9733    }
9734    function verbalNumber(number, isFuture) {
9735        return number < 10
9736            ? isFuture
9737                ? numbersFuture[number]
9738                : numbersPast[number]
9739            : number;
9740    }
9741
9742    hooks.defineLocale('fi', {
9743        months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(
9744            '_'
9745        ),
9746        monthsShort:
9747            'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split(
9748                '_'
9749            ),
9750        weekdays:
9751            'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(
9752                '_'
9753            ),
9754        weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),
9755        weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),
9756        longDateFormat: {
9757            LT: 'HH.mm',
9758            LTS: 'HH.mm.ss',
9759            L: 'DD.MM.YYYY',
9760            LL: 'Do MMMM[ta] YYYY',
9761            LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',
9762            LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',
9763            l: 'D.M.YYYY',
9764            ll: 'Do MMM YYYY',
9765            lll: 'Do MMM YYYY, [klo] HH.mm',
9766            llll: 'ddd, Do MMM YYYY, [klo] HH.mm',
9767        },
9768        calendar: {
9769            sameDay: '[tänään] [klo] LT',
9770            nextDay: '[huomenna] [klo] LT',
9771            nextWeek: 'dddd [klo] LT',
9772            lastDay: '[eilen] [klo] LT',
9773            lastWeek: '[viime] dddd[na] [klo] LT',
9774            sameElse: 'L',
9775        },
9776        relativeTime: {
9777            future: '%s päästä',
9778            past: '%s sitten',
9779            s: translate$2,
9780            ss: translate$2,
9781            m: translate$2,
9782            mm: translate$2,
9783            h: translate$2,
9784            hh: translate$2,
9785            d: translate$2,
9786            dd: translate$2,
9787            M: translate$2,
9788            MM: translate$2,
9789            y: translate$2,
9790            yy: translate$2,
9791        },
9792        dayOfMonthOrdinalParse: /\d{1,2}\./,
9793        ordinal: '%d.',
9794        week: {
9795            dow: 1, // Monday is the first day of the week.
9796            doy: 4, // The week that contains Jan 4th is the first week of the year.
9797        },
9798    });
9799
9800    //! moment.js locale configuration
9801
9802    hooks.defineLocale('fil', {
9803        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
9804            '_'
9805        ),
9806        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
9807        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
9808            '_'
9809        ),
9810        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
9811        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
9812        longDateFormat: {
9813            LT: 'HH:mm',
9814            LTS: 'HH:mm:ss',
9815            L: 'MM/D/YYYY',
9816            LL: 'MMMM D, YYYY',
9817            LLL: 'MMMM D, YYYY HH:mm',
9818            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
9819        },
9820        calendar: {
9821            sameDay: 'LT [ngayong araw]',
9822            nextDay: '[Bukas ng] LT',
9823            nextWeek: 'LT [sa susunod na] dddd',
9824            lastDay: 'LT [kahapon]',
9825            lastWeek: 'LT [noong nakaraang] dddd',
9826            sameElse: 'L',
9827        },
9828        relativeTime: {
9829            future: 'sa loob ng %s',
9830            past: '%s ang nakalipas',
9831            s: 'ilang segundo',
9832            ss: '%d segundo',
9833            m: 'isang minuto',
9834            mm: '%d minuto',
9835            h: 'isang oras',
9836            hh: '%d oras',
9837            d: 'isang araw',
9838            dd: '%d araw',
vendor: 12,427 bytes, lines 9839-10203
9839            M: 'isang buwan',
9840            MM: '%d buwan',
9841            y: 'isang taon',
9842            yy: '%d taon',
9843        },
9844        dayOfMonthOrdinalParse: /\d{1,2}/,
9845        ordinal: function (number) {
9846            return number;
9847        },
9848        week: {
9849            dow: 1, // Monday is the first day of the week.
9850            doy: 4, // The week that contains Jan 4th is the first week of the year.
9851        },
9852    });
9853
9854    //! moment.js locale configuration
9855
9856    hooks.defineLocale('fo', {
9857        months: 'januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember'.split(
9858            '_'
9859        ),
9860        monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),
9861        weekdays:
9862            'sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur'.split(
9863                '_'
9864            ),
9865        weekdaysShort: 'sun_mán_týs_mik_hós_frí_ley'.split('_'),
9866        weekdaysMin: 'su_má_tý_mi_hó_fr_le'.split('_'),
9867        longDateFormat: {
9868            LT: 'HH:mm',
9869            LTS: 'HH:mm:ss',
9870            L: 'DD/MM/YYYY',
9871            LL: 'D MMMM YYYY',
9872            LLL: 'D MMMM YYYY HH:mm',
9873            LLLL: 'dddd D. MMMM, YYYY HH:mm',
9874        },
9875        calendar: {
9876            sameDay: '[Í dag kl.] LT',
9877            nextDay: '[Í morgin kl.] LT',
9878            nextWeek: 'dddd [kl.] LT',
9879            lastDay: '[Í gjár kl.] LT',
9880            lastWeek: '[síðstu] dddd [kl] LT',
9881            sameElse: 'L',
9882        },
9883        relativeTime: {
9884            future: 'um %s',
9885            past: '%s síðani',
9886            s: 'fá sekund',
9887            ss: '%d sekundir',
9888            m: 'ein minuttur',
9889            mm: '%d minuttir',
9890            h: 'ein tími',
9891            hh: '%d tímar',
9892            d: 'ein dagur',
9893            dd: '%d dagar',
9894            M: 'ein mánaður',
9895            MM: '%d mánaðir',
9896            y: 'eitt ár',
9897            yy: '%d ár',
9898        },
9899        dayOfMonthOrdinalParse: /\d{1,2}\./,
9900        ordinal: '%d.',
9901        week: {
9902            dow: 1, // Monday is the first day of the week.
9903            doy: 4, // The week that contains Jan 4th is the first week of the year.
9904        },
9905    });
9906
9907    //! moment.js locale configuration
9908
9909    hooks.defineLocale('fr-ca', {
9910        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9911            '_'
9912        ),
9913        monthsShort:
9914            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9915                '_'
9916            ),
9917        monthsParseExact: true,
9918        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9919        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9920        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9921        weekdaysParseExact: true,
9922        longDateFormat: {
9923            LT: 'HH:mm',
9924            LTS: 'HH:mm:ss',
9925            L: 'YYYY-MM-DD',
9926            LL: 'D MMMM YYYY',
9927            LLL: 'D MMMM YYYY HH:mm',
9928            LLLL: 'dddd D MMMM YYYY HH:mm',
9929        },
9930        calendar: {
9931            sameDay: '[Aujourd’hui à] LT',
9932            nextDay: '[Demain à] LT',
9933            nextWeek: 'dddd [à] LT',
9934            lastDay: '[Hier à] LT',
9935            lastWeek: 'dddd [dernier à] LT',
9936            sameElse: 'L',
9937        },
9938        relativeTime: {
9939            future: 'dans %s',
9940            past: 'il y a %s',
9941            s: 'quelques secondes',
9942            ss: '%d secondes',
9943            m: 'une minute',
9944            mm: '%d minutes',
9945            h: 'une heure',
9946            hh: '%d heures',
9947            d: 'un jour',
9948            dd: '%d jours',
9949            M: 'un mois',
9950            MM: '%d mois',
9951            y: 'un an',
9952            yy: '%d ans',
9953        },
9954        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
9955        ordinal: function (number, period) {
9956            switch (period) {
9957                // Words with masculine grammatical gender: mois, trimestre, jour
9958                default:
9959                case 'M':
9960                case 'Q':
9961                case 'D':
9962                case 'DDD':
9963                case 'd':
9964                    return number + (number === 1 ? 'er' : 'e');
9965
9966                // Words with feminine grammatical gender: semaine
9967                case 'w':
9968                case 'W':
9969                    return number + (number === 1 ? 're' : 'e');
9970            }
9971        },
9972    });
9973
9974    //! moment.js locale configuration
9975
9976    hooks.defineLocale('fr-ch', {
9977        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
9978            '_'
9979        ),
9980        monthsShort:
9981            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
9982                '_'
9983            ),
9984        monthsParseExact: true,
9985        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
9986        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
9987        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
9988        weekdaysParseExact: true,
9989        longDateFormat: {
9990            LT: 'HH:mm',
9991            LTS: 'HH:mm:ss',
9992            L: 'DD.MM.YYYY',
9993            LL: 'D MMMM YYYY',
9994            LLL: 'D MMMM YYYY HH:mm',
9995            LLLL: 'dddd D MMMM YYYY HH:mm',
9996        },
9997        calendar: {
9998            sameDay: '[Aujourd’hui à] LT',
9999            nextDay: '[Demain à] LT',
10000            nextWeek: 'dddd [à] LT',
10001            lastDay: '[Hier à] LT',
10002            lastWeek: 'dddd [dernier à] LT',
10003            sameElse: 'L',
10004        },
10005        relativeTime: {
10006            future: 'dans %s',
10007            past: 'il y a %s',
10008            s: 'quelques secondes',
10009            ss: '%d secondes',
10010            m: 'une minute',
10011            mm: '%d minutes',
10012            h: 'une heure',
10013            hh: '%d heures',
10014            d: 'un jour',
10015            dd: '%d jours',
10016            M: 'un mois',
10017            MM: '%d mois',
10018            y: 'un an',
10019            yy: '%d ans',
10020        },
10021        dayOfMonthOrdinalParse: /\d{1,2}(er|e)/,
10022        ordinal: function (number, period) {
10023            switch (period) {
10024                // Words with masculine grammatical gender: mois, trimestre, jour
10025                default:
10026                case 'M':
10027                case 'Q':
10028                case 'D':
10029                case 'DDD':
10030                case 'd':
10031                    return number + (number === 1 ? 'er' : 'e');
10032
10033                // Words with feminine grammatical gender: semaine
10034                case 'w':
10035                case 'W':
10036                    return number + (number === 1 ? 're' : 'e');
10037            }
10038        },
10039        week: {
10040            dow: 1, // Monday is the first day of the week.
10041            doy: 4, // The week that contains Jan 4th is the first week of the year.
10042        },
10043    });
10044
10045    //! moment.js locale configuration
10046
10047    var monthsStrictRegex$1 =
10048            /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
10049        monthsShortStrictRegex$1 =
10050            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i,
10051        monthsRegex$7 =
10052            /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i,
10053        monthsParse$6 = [
10054            /^janv/i,
10055            /^févr/i,
10056            /^mars/i,
10057            /^avr/i,
10058            /^mai/i,
10059            /^juin/i,
10060            /^juil/i,
10061            /^août/i,
10062            /^sept/i,
10063            /^oct/i,
10064            /^nov/i,
10065            /^déc/i,
10066        ];
10067
10068    hooks.defineLocale('fr', {
10069        months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split(
10070            '_'
10071        ),
10072        monthsShort:
10073            'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split(
10074                '_'
10075            ),
10076        monthsRegex: monthsRegex$7,
10077        monthsShortRegex: monthsRegex$7,
10078        monthsStrictRegex: monthsStrictRegex$1,
10079        monthsShortStrictRegex: monthsShortStrictRegex$1,
10080        monthsParse: monthsParse$6,
10081        longMonthsParse: monthsParse$6,
10082        shortMonthsParse: monthsParse$6,
10083        weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),
10084        weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),
10085        weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),
10086        weekdaysParseExact: true,
10087        longDateFormat: {
10088            LT: 'HH:mm',
10089            LTS: 'HH:mm:ss',
10090            L: 'DD/MM/YYYY',
10091            LL: 'D MMMM YYYY',
10092            LLL: 'D MMMM YYYY HH:mm',
10093            LLLL: 'dddd D MMMM YYYY HH:mm',
10094        },
10095        calendar: {
10096            sameDay: '[Aujourd’hui à] LT',
10097            nextDay: '[Demain à] LT',
10098            nextWeek: 'dddd [à] LT',
10099            lastDay: '[Hier à] LT',
10100            lastWeek: 'dddd [dernier à] LT',
10101            sameElse: 'L',
10102        },
10103        relativeTime: {
10104            future: 'dans %s',
10105            past: 'il y a %s',
10106            s: 'quelques secondes',
10107            ss: '%d secondes',
10108            m: 'une minute',
10109            mm: '%d minutes',
10110            h: 'une heure',
10111            hh: '%d heures',
10112            d: 'un jour',
10113            dd: '%d jours',
10114            w: 'une semaine',
10115            ww: '%d semaines',
10116            M: 'un mois',
10117            MM: '%d mois',
10118            y: 'un an',
10119            yy: '%d ans',
10120        },
10121        dayOfMonthOrdinalParse: /\d{1,2}(er|)/,
10122        ordinal: function (number, period) {
10123            switch (period) {
10124                // TODO: Return 'e' when day of month > 1. Move this case inside
10125                // block for masculine words below.
10126                // See https://github.com/moment/moment/issues/3375
10127                case 'D':
10128                    return number + (number === 1 ? 'er' : '');
10129
10130                // Words with masculine grammatical gender: mois, trimestre, jour
10131                default:
10132                case 'M':
10133                case 'Q':
10134                case 'DDD':
10135                case 'd':
10136                    return number + (number === 1 ? 'er' : 'e');
10137
10138                // Words with feminine grammatical gender: semaine
10139                case 'w':
10140                case 'W':
10141                    return number + (number === 1 ? 're' : 'e');
10142            }
10143        },
10144        week: {
10145            dow: 1, // Monday is the first day of the week.
10146            doy: 4, // The week that contains Jan 4th is the first week of the year.
10147        },
10148    });
10149
10150    //! moment.js locale configuration
10151
10152    var monthsShortWithDots =
10153            'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split('_'),
10154        monthsShortWithoutDots =
10155            'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_');
10156
10157    hooks.defineLocale('fy', {
10158        months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(
10159            '_'
10160        ),
10161        monthsShort: function (m, format) {
10162            if (!m) {
10163                return monthsShortWithDots;
10164            } else if (/-MMM-/.test(format)) {
10165                return monthsShortWithoutDots[m.month()];
10166            } else {
10167                return monthsShortWithDots[m.month()];
10168            }
10169        },
10170        monthsParseExact: true,
10171        weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(
10172            '_'
10173        ),
10174        weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),
10175        weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),
10176        weekdaysParseExact: true,
10177        longDateFormat: {
10178            LT: 'HH:mm',
10179            LTS: 'HH:mm:ss',
10180            L: 'DD-MM-YYYY',
10181            LL: 'D MMMM YYYY',
10182            LLL: 'D MMMM YYYY HH:mm',
10183            LLLL: 'dddd D MMMM YYYY HH:mm',
10184        },
10185        calendar: {
10186            sameDay: '[hjoed om] LT',
10187            nextDay: '[moarn om] LT',
10188            nextWeek: 'dddd [om] LT',
10189            lastDay: '[juster om] LT',
10190            lastWeek: '[ôfrûne] dddd [om] LT',
10191            sameElse: 'L',
10192        },
10193        relativeTime: {
10194            future: 'oer %s',
10195            past: '%s lyn',
10196            s: 'in pear sekonden',
10197            ss: '%d sekonden',
10198            m: 'ien minút',
10199            mm: '%d minuten',
10200            h: 'ien oere',
10201            hh: '%d oeren',
10202            d: 'ien dei',
10203            dd: '%d dagen',
10204            M: 'ien moanne',
10205            MM: '%d moannen',
10206            y: 'ien jier',
10207            yy: '%d jierren',
10208        },
10209        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
10210        ordinal: function (number) {
10211            return (
10212                number +
10213                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
10214            );
10215        },
10216        week: {
10217            dow: 1, // Monday is the first day of the week.
10218            doy: 4, // The week that contains Jan 4th is the first week of the year.
10219        },
10220    });
10221
10222    //! moment.js locale configuration
10223
10224    var months$6 = [
10225            'Eanáir',
10226            'Feabhra',
10227            'Márta',
10228            'Aibreán',
10229            'Bealtaine',
10230            'Meitheamh',
10231            'Iúil',
10232            'Lúnasa',
10233            'Meán Fómhair',
10234            'Deireadh Fómhair',
10235            'Samhain',
10236            'Nollaig',
10237        ],
10238        monthsShort$5 = [
10239            'Ean',
10240            'Feabh',
10241            'Márt',
10242            'Aib',
10243            'Beal',
10244            'Meith',
10245            'Iúil',
10246            'Lún',
10247            'M.F.',
10248            'D.F.',
10249            'Samh',
10250            'Noll',
10251        ],
10252        weekdays$1 = [
10253            'Dé Domhnaigh',
10254            'Dé Luain',
10255            'Dé Máirt',
10256            'Dé Céadaoin',
10257            'Déardaoin',
10258            'Dé hAoine',
10259            'Dé Sathairn',
10260        ],
10261        weekdaysShort = ['Domh', 'Luan', 'Máirt', 'Céad', 'Déar', 'Aoine', 'Sath'],
10262        weekdaysMin = ['Do', 'Lu', 'Má', 'Cé', 'Dé', 'A', 'Sa'];
10263
10264    hooks.defineLocale('ga', {
10265        months: months$6,
10266        monthsShort: monthsShort$5,
10267        monthsParseExact: true,
10268        weekdays: weekdays$1,
10269        weekdaysShort: weekdaysShort,
10270        weekdaysMin: weekdaysMin,
10271        longDateFormat: {
10272            LT: 'HH:mm',
10273            LTS: 'HH:mm:ss',
10274            L: 'DD/MM/YYYY',
10275            LL: 'D MMMM YYYY',
10276            LLL: 'D MMMM YYYY HH:mm',
10277            LLLL: 'dddd, D MMMM YYYY HH:mm',
10278        },
10279        calendar: {
10280            sameDay: '[Inniu ag] LT',
10281            nextDay: '[Amárach ag] LT',
10282            nextWeek: 'dddd [ag] LT',
10283            lastDay: '[Inné ag] LT',
10284            lastWeek: 'dddd [seo caite] [ag] LT',
10285            sameElse: 'L',
10286        },
10287        relativeTime: {
10288            future: 'i %s',
10289            past: '%s ó shin',
10290            s: 'cúpla soicind',
10291            ss: '%d soicind',
10292            m: 'nóiméad',
10293            mm: '%d nóiméad',
10294            h: 'uair an chloig',
10295            hh: '%d uair an chloig',
10296            d: 'lá',
10297            dd: '%d lá',
10298            M: 'mí',
10299            MM: '%d míonna',
10300            y: 'bliain',
10301            yy: '%d bliain',
10302        },
10303        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10304        ordinal: function (number) {
10305            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10306            return number + output;
10307        },
10308        week: {
10309            dow: 1, // Monday is the first day of the week.
10310            doy: 4, // The week that contains Jan 4th is the first week of the year.
10311        },
10312    });
10313
10314    //! moment.js locale configuration
10315
10316    var months$7 = [
10317            'Am Faoilleach',
10318            'An Gearran',
10319            'Am Màrt',
10320            'An Giblean',
10321            'An Cèitean',
10322            'An t-Ògmhios',
10323            'An t-Iuchar',
10324            'An Lùnastal',
10325            'An t-Sultain',
10326            'An Dàmhair',
10327            'An t-Samhain',
10328            'An Dùbhlachd',
10329        ],
10330        monthsShort$6 = [
10331            'Faoi',
10332            'Gear',
10333            'Màrt',
10334            'Gibl',
10335            'Cèit',
10336            'Ògmh',
10337            'Iuch',
10338            'Lùn',
10339            'Sult',
10340            'Dàmh',
10341            'Samh',
10342            'Dùbh',
10343        ],
10344        weekdays$2 = [
10345            'Didòmhnaich',
10346            'Diluain',
10347            'Dimàirt',
10348            'Diciadain',
10349            'Diardaoin',
10350            'Dihaoine',
10351            'Disathairne',
10352        ],
10353        weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],
10354        weekdaysMin$1 = ['Dò', 'Lu', 'Mà', 'Ci', 'Ar', 'Ha', 'Sa'];
10355
10356    hooks.defineLocale('gd', {
10357        months: months$7,
10358        monthsShort: monthsShort$6,
10359        monthsParseExact: true,
10360        weekdays: weekdays$2,
10361        weekdaysShort: weekdaysShort$1,
10362        weekdaysMin: weekdaysMin$1,
10363        longDateFormat: {
10364            LT: 'HH:mm',
10365            LTS: 'HH:mm:ss',
10366            L: 'DD/MM/YYYY',
10367            LL: 'D MMMM YYYY',
10368            LLL: 'D MMMM YYYY HH:mm',
10369            LLLL: 'dddd, D MMMM YYYY HH:mm',
10370        },
10371        calendar: {
10372            sameDay: '[An-diugh aig] LT',
10373            nextDay: '[A-màireach aig] LT',
10374            nextWeek: 'dddd [aig] LT',
10375            lastDay: '[An-dè aig] LT',
10376            lastWeek: 'dddd [seo chaidh] [aig] LT',
10377            sameElse: 'L',
10378        },
10379        relativeTime: {
10380            future: 'ann an %s',
10381            past: 'bho chionn %s',
10382            s: 'beagan diogan',
10383            ss: '%d diogan',
10384            m: 'mionaid',
10385            mm: '%d mionaidean',
10386            h: 'uair',
10387            hh: '%d uairean',
10388            d: 'latha',
10389            dd: '%d latha',
10390            M: 'mìos',
10391            MM: '%d mìosan',
10392            y: 'bliadhna',
10393            yy: '%d bliadhna',
10394        },
10395        dayOfMonthOrdinalParse: /\d{1,2}(d|na|mh)/,
10396        ordinal: function (number) {
10397            var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';
10398            return number + output;
10399        },
10400        week: {
10401            dow: 1, // Monday is the first day of the week.
10402            doy: 4, // The week that contains Jan 4th is the first week of the year.
10403        },
10404    });
10405
10406    //! moment.js locale configuration
10407
10408    hooks.defineLocale('gl', {
10409        months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split(
10410            '_'
10411        ),
10412        monthsShort:
10413            'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split(
10414                '_'
10415            ),
10416        monthsParseExact: true,
10417        weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),
10418        weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),
10419        weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),
10420        weekdaysParseExact: true,
10421        longDateFormat: {
10422            LT: 'H:mm',
10423            LTS: 'H:mm:ss',
10424            L: 'DD/MM/YYYY',
10425            LL: 'D [de] MMMM [de] YYYY',
10426            LLL: 'D [de] MMMM [de] YYYY H:mm',
10427            LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',
10428        },
10429        calendar: {
10430            sameDay: function () {
10431                return '[hoxe ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10432            },
10433            nextDay: function () {
10434                return '[mañá ' + (this.hours() !== 1 ? 'ás' : 'á') + '] LT';
10435            },
10436            nextWeek: function () {
10437                return 'dddd [' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT';
10438            },
10439            lastDay: function () {
10440                return '[onte ' + (this.hours() !== 1 ? 'á' : 'a') + '] LT';
10441            },
10442            lastWeek: function () {
10443                return (
10444                    '[o] dddd [pasado ' + (this.hours() !== 1 ? 'ás' : 'a') + '] LT'
10445                );
10446            },
10447            sameElse: 'L',
10448        },
10449        relativeTime: {
10450            future: function (str) {
10451                if (str.indexOf('un') === 0) {
10452                    return 'n' + str;
10453                }
10454                return 'en ' + str;
10455            },
10456            past: 'hai %s',
10457            s: 'uns segundos',
10458            ss: '%d segundos',
10459            m: 'un minuto',
10460            mm: '%d minutos',
10461            h: 'unha hora',
10462            hh: '%d horas',
10463            d: 'un día',
10464            dd: '%d días',
10465            M: 'un mes',
10466            MM: '%d meses',
10467            y: 'un ano',
10468            yy: '%d anos',
10469        },
10470        dayOfMonthOrdinalParse: /\d{1,2}º/,
10471        ordinal: '%dº',
10472        week: {
10473            dow: 1, // Monday is the first day of the week.
10474            doy: 4, // The week that contains Jan 4th is the first week of the year.
10475        },
10476    });
10477
10478    //! moment.js locale configuration
10479
10480    function processRelativeTime$4(number, withoutSuffix, key, isFuture) {
10481        var format = {
10482            s: ['थोडया सॅकंडांनी', 'थोडे सॅकंड'],
10483            ss: [number + ' सॅकंडांनी', number + ' सॅकंड'],
10484            m: ['एका मिणटान', 'एक मिनूट'],
10485            mm: [number + ' मिणटांनी', number + ' मिणटां'],
10486            h: ['एका वरान', 'एक वर'],
10487            hh: [number + ' वरांनी', number + ' वरां'],
10488            d: ['एका दिसान', 'एक दीस'],
10489            dd: [number + ' दिसांनी', number + ' दीस'],
10490            M: ['एका म्हयन्यान', 'एक म्हयनो'],
10491            MM: [number + ' म्हयन्यानी', number + ' म्हयने'],
10492            y: ['एका वर्सान', 'एक वर्स'],
10493            yy: [number + ' वर्सांनी', number + ' वर्सां'],
10494        };
10495        return isFuture ? format[key][0] : format[key][1];
10496    }
10497
10498    hooks.defineLocale('gom-deva', {
10499        months: {
10500            standalone:
10501                'जानेवारी_फेब्रुवारी_मार्च_एप्रील_मे_जून_जुलय_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
10502                    '_'
10503                ),
10504            format: 'जानेवारीच्या_फेब्रुवारीच्या_मार्चाच्या_एप्रीलाच्या_मेयाच्या_जूनाच्या_जुलयाच्या_ऑगस्टाच्या_सप्टेंबराच्या_ऑक्टोबराच्या_नोव्हेंबराच्या_डिसेंबराच्या'.split(
10505                '_'
10506            ),
10507            isFormat: /MMMM(\s)+D[oD]?/,
10508        },
10509        monthsShort:
10510            'जाने._फेब्रु._मार्च_एप्री._मे_जून_जुल._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
10511                '_'
10512            ),
10513        monthsParseExact: true,
10514        weekdays: 'आयतार_सोमार_मंगळार_बुधवार_बिरेस्तार_सुक्राà
vendor: 8,719 bytes, lines 10514-10753
10514¤°_शेनवार'.split('_'),
10515        weekdaysShort: 'आयत._सोम._मंगळ._बुध._ब्रेस्त._सुक्र._शेन.'.split('_'),
10516        weekdaysMin: 'आ_सो_मं_बु_ब्रे_सु_शे'.split('_'),
10517        weekdaysParseExact: true,
10518        longDateFormat: {
10519            LT: 'A h:mm [वाजतां]',
10520            LTS: 'A h:mm:ss [वाजतां]',
10521            L: 'DD-MM-YYYY',
10522            LL: 'D MMMM YYYY',
10523            LLL: 'D MMMM YYYY A h:mm [वाजतां]',
10524            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [वाजतां]',
10525            llll: 'ddd, D MMM YYYY, A h:mm [वाजतां]',
10526        },
10527        calendar: {
10528            sameDay: '[आयज] LT',
10529            nextDay: '[फाल्यां] LT',
10530            nextWeek: '[फुडलो] dddd[,] LT',
10531            lastDay: '[काल] LT',
10532            lastWeek: '[फाटलो] dddd[,] LT',
10533            sameElse: 'L',
10534        },
10535        relativeTime: {
10536            future: '%s',
10537            past: '%s आदीं',
10538            s: processRelativeTime$4,
10539            ss: processRelativeTime$4,
10540            m: processRelativeTime$4,
10541            mm: processRelativeTime$4,
10542            h: processRelativeTime$4,
10543            hh: processRelativeTime$4,
10544            d: processRelativeTime$4,
10545            dd: processRelativeTime$4,
10546            M: processRelativeTime$4,
10547            MM: processRelativeTime$4,
10548            y: processRelativeTime$4,
10549            yy: processRelativeTime$4,
10550        },
10551        dayOfMonthOrdinalParse: /\d{1,2}(वेर)/,
10552        ordinal: function (number, period) {
10553            switch (period) {
10554                // the ordinal 'वेर' only applies to day of the month
10555                case 'D':
10556                    return number + 'वेर';
10557                default:
10558                case 'M':
10559                case 'Q':
10560                case 'DDD':
10561                case 'd':
10562                case 'w':
10563                case 'W':
10564                    return number;
10565            }
10566        },
10567        week: {
10568            dow: 0, // Sunday is the first day of the week
10569            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10570        },
10571        meridiemParse: /राती|सकाळीं|दनपारां|सांजे/,
10572        meridiemHour: function (hour, meridiem) {
10573            if (hour === 12) {
10574                hour = 0;
10575            }
10576            if (meridiem === 'राती') {
10577                return hour < 4 ? hour : hour + 12;
10578            } else if (meridiem === 'सकाळीं') {
10579                return hour;
10580            } else if (meridiem === 'दनपारां') {
10581                return hour > 12 ? hour : hour + 12;
10582            } else if (meridiem === 'सांजे') {
10583                return hour + 12;
10584            }
10585        },
10586        meridiem: function (hour, minute, isLower) {
10587            if (hour < 4) {
10588                return 'राती';
10589            } else if (hour < 12) {
10590                return 'सकाळीं';
10591            } else if (hour < 16) {
10592                return 'दनपारां';
10593            } else if (hour < 20) {
10594                return 'सांजे';
10595            } else {
10596                return 'राती';
10597            }
10598        },
10599    });
10600
10601    //! moment.js locale configuration
10602
10603    function processRelativeTime$5(number, withoutSuffix, key, isFuture) {
10604        var format = {
10605            s: ['thoddea sekondamni', 'thodde sekond'],
10606            ss: [number + ' sekondamni', number + ' sekond'],
10607            m: ['eka mintan', 'ek minut'],
10608            mm: [number + ' mintamni', number + ' mintam'],
10609            h: ['eka voran', 'ek vor'],
10610            hh: [number + ' voramni', number + ' voram'],
10611            d: ['eka disan', 'ek dis'],
10612            dd: [number + ' disamni', number + ' dis'],
10613            M: ['eka mhoinean', 'ek mhoino'],
10614            MM: [number + ' mhoineamni', number + ' mhoine'],
10615            y: ['eka vorsan', 'ek voros'],
10616            yy: [number + ' vorsamni', number + ' vorsam'],
10617        };
10618        return isFuture ? format[key][0] : format[key][1];
10619    }
10620
10621    hooks.defineLocale('gom-latn', {
10622        months: {
10623            standalone:
10624                'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(
10625                    '_'
10626                ),
10627            format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(
10628                '_'
10629            ),
10630            isFormat: /MMMM(\s)+D[oD]?/,
10631        },
10632        monthsShort:
10633            'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split('_'),
10634        monthsParseExact: true,
10635        weekdays: "Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var".split('_'),
10636        weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),
10637        weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),
10638        weekdaysParseExact: true,
10639        longDateFormat: {
10640            LT: 'A h:mm [vazta]',
10641            LTS: 'A h:mm:ss [vazta]',
10642            L: 'DD-MM-YYYY',
10643            LL: 'D MMMM YYYY',
10644            LLL: 'D MMMM YYYY A h:mm [vazta]',
10645            LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',
10646            llll: 'ddd, D MMM YYYY, A h:mm [vazta]',
10647        },
10648        calendar: {
10649            sameDay: '[Aiz] LT',
10650            nextDay: '[Faleam] LT',
10651            nextWeek: '[Fuddlo] dddd[,] LT',
10652            lastDay: '[Kal] LT',
10653            lastWeek: '[Fattlo] dddd[,] LT',
10654            sameElse: 'L',
10655        },
10656        relativeTime: {
10657            future: '%s',
10658            past: '%s adim',
10659            s: processRelativeTime$5,
10660            ss: processRelativeTime$5,
10661            m: processRelativeTime$5,
10662            mm: processRelativeTime$5,
10663            h: processRelativeTime$5,
10664            hh: processRelativeTime$5,
10665            d: processRelativeTime$5,
10666            dd: processRelativeTime$5,
10667            M: processRelativeTime$5,
10668            MM: processRelativeTime$5,
10669            y: processRelativeTime$5,
10670            yy: processRelativeTime$5,
10671        },
10672        dayOfMonthOrdinalParse: /\d{1,2}(er)/,
10673        ordinal: function (number, period) {
10674            switch (period) {
10675                // the ordinal 'er' only applies to day of the month
10676                case 'D':
10677                    return number + 'er';
10678                default:
10679                case 'M':
10680                case 'Q':
10681                case 'DDD':
10682                case 'd':
10683                case 'w':
10684                case 'W':
10685                    return number;
10686            }
10687        },
10688        week: {
10689            dow: 0, // Sunday is the first day of the week
10690            doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)
10691        },
10692        meridiemParse: /rati|sokallim|donparam|sanje/,
10693        meridiemHour: function (hour, meridiem) {
10694            if (hour === 12) {
10695                hour = 0;
10696            }
10697            if (meridiem === 'rati') {
10698                return hour < 4 ? hour : hour + 12;
10699            } else if (meridiem === 'sokallim') {
10700                return hour;
10701            } else if (meridiem === 'donparam') {
10702                return hour > 12 ? hour : hour + 12;
10703            } else if (meridiem === 'sanje') {
10704                return hour + 12;
10705            }
10706        },
10707        meridiem: function (hour, minute, isLower) {
10708            if (hour < 4) {
10709                return 'rati';
10710            } else if (hour < 12) {
10711                return 'sokallim';
10712            } else if (hour < 16) {
10713                return 'donparam';
10714            } else if (hour < 20) {
10715                return 'sanje';
10716            } else {
10717                return 'rati';
10718            }
10719        },
10720    });
10721
10722    //! moment.js locale configuration
10723
10724    var symbolMap$7 = {
10725            1: 'à«§',
10726            2: '૨',
10727            3: 'à«©',
10728            4: '૪',
10729            5: 'à««',
10730            6: '૬',
10731            7: 'à«­',
10732            8: 'à«®',
10733            9: '૯',
10734            0: '૦',
10735        },
10736        numberMap$6 = {
10737            'à«§': '1',
10738            '૨': '2',
10739            'à«©': '3',
10740            '૪': '4',
10741            'à««': '5',
10742            '૬': '6',
10743            'à«­': '7',
10744            'à«®': '8',
10745            '૯': '9',
10746            '૦': '0',
10747        };
10748
10749    hooks.defineLocale('gu', {
10750        months: 'જાન્યુઆરી_ફેબ્રુઆરી_માર્ચ_એપ્રિલ_મે_જૂન_જુલાઈ_ઑગસ્ટ_સપ્ટેમ્બર_ઑક્ટ્બર_નવેમ્બર_ડિસેમ્બર'.split(
10751            '_'
10752        ),
10753        monthsShort:
vendor: 7,472 bytes, lines 10754-10956
10754            'જાન્યુ._ફેબ્રુ._માર્ચ_એપ્રિ._મે_જૂન_જુલા._ઑગ._સપ્ટે._ઑક્ટ્._નવે._ડિસે.'.split(
10755                '_'
10756            ),
10757        monthsParseExact: true,
10758        weekdays: 'રવિવાર_સોમવાર_મંગળવાર_બુધ્વાર_ગુરુવાર_શુક્રવાર_શનિવાર'.split(
10759            '_'
10760        ),
10761        weekdaysShort: 'રવિ_સોમ_મંગળ_બુધ્_ગુરુ_શુક્ર_શનિ'.split('_'),
10762        weekdaysMin: 'ર_સો_મં_બુ_ગુ_શુ_શ'.split('_'),
10763        longDateFormat: {
10764            LT: 'A h:mm વાગ્યે',
10765            LTS: 'A h:mm:ss વાગ્યે',
10766            L: 'DD/MM/YYYY',
10767            LL: 'D MMMM YYYY',
10768            LLL: 'D MMMM YYYY, A h:mm વાગ્યે',
10769            LLLL: 'dddd, D MMMM YYYY, A h:mm વાગ્યે',
10770        },
10771        calendar: {
10772            sameDay: '[આજ] LT',
10773            nextDay: '[કાલે] LT',
10774            nextWeek: 'dddd, LT',
10775            lastDay: '[ગઇકાલે] LT',
10776            lastWeek: '[પાછલા] dddd, LT',
10777            sameElse: 'L',
10778        },
10779        relativeTime: {
10780            future: '%s મા',
10781            past: '%s પહેલા',
10782            s: 'અમુક પળો',
10783            ss: '%d સેકંડ',
10784            m: 'એક મિનિટ',
10785            mm: '%d મિનિટ',
10786            h: 'એક કલાક',
10787            hh: '%d કલાક',
10788            d: 'એક દિવસ',
10789            dd: '%d દિવસ',
10790            M: 'એક મહિનો',
10791            MM: '%d મહિનો',
10792            y: 'એક વર્ષ',
10793            yy: '%d વર્ષ',
10794        },
10795        preparse: function (string) {
10796            return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {
10797                return numberMap$6[match];
10798            });
10799        },
10800        postformat: function (string) {
10801            return string.replace(/\d/g, function (match) {
10802                return symbolMap$7[match];
10803            });
10804        },
10805        // Gujarati notation for meridiems are quite fuzzy in practice. While there exists
10806        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.
10807        meridiemParse: /રાત|બપોર|સવાર|સાંજ/,
10808        meridiemHour: function (hour, meridiem) {
10809            if (hour === 12) {
10810                hour = 0;
10811            }
10812            if (meridiem === 'રાત') {
10813                return hour < 4 ? hour : hour + 12;
10814            } else if (meridiem === 'સવાર') {
10815                return hour;
10816            } else if (meridiem === 'બપોર') {
10817                return hour >= 10 ? hour : hour + 12;
10818            } else if (meridiem === 'સાંજ') {
10819                return hour + 12;
10820            }
10821        },
10822        meridiem: function (hour, minute, isLower) {
10823            if (hour < 4) {
10824                return 'રાત';
10825            } else if (hour < 10) {
10826                return 'સવાર';
10827            } else if (hour < 17) {
10828                return 'બપોર';
10829            } else if (hour < 20) {
10830                return 'સાંજ';
10831            } else {
10832                return 'રાત';
10833            }
10834        },
10835        week: {
10836            dow: 0, // Sunday is the first day of the week.
10837            doy: 6, // The week that contains Jan 6th is the first week of the year.
10838        },
10839    });
10840
10841    //! moment.js locale configuration
10842
10843    hooks.defineLocale('he', {
10844        months: 'ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר'.split(
10845            '_'
10846        ),
10847        monthsShort:
10848            'ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳'.split('_'),
10849        weekdays: 'ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),
10850        weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),
10851        weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),
10852        longDateFormat: {
10853            LT: 'HH:mm',
10854            LTS: 'HH:mm:ss',
10855            L: 'DD/MM/YYYY',
10856            LL: 'D [ב]MMMM YYYY',
10857            LLL: 'D [ב]MMMM YYYY HH:mm',
10858            LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',
10859            l: 'D/M/YYYY',
10860            ll: 'D MMM YYYY',
10861            lll: 'D MMM YYYY HH:mm',
10862            llll: 'ddd, D MMM YYYY HH:mm',
10863        },
10864        calendar: {
10865            sameDay: '[היום ב־]LT',
10866            nextDay: '[מחר ב־]LT',
10867            nextWeek: 'dddd [בשעה] LT',
10868            lastDay: '[אתמול ב־]LT',
10869            lastWeek: '[ביום] dddd [האחרון בשעה] LT',
10870            sameElse: 'L',
10871        },
10872        relativeTime: {
10873            future: 'בעוד %s',
10874            past: 'לפני %s',
10875            s: 'מספר שניות',
10876            ss: '%d שניות',
10877            m: 'דקה',
10878            mm: '%d דקות',
10879            h: 'שעה',
10880            hh: function (number) {
10881                if (number === 2) {
10882                    return 'שעתיים';
10883                }
10884                return number + ' שעות';
10885            },
10886            d: 'יום',
10887            dd: function (number) {
10888                if (number === 2) {
10889                    return 'יומיים';
10890                }
10891                return number + ' ימים';
10892            },
10893            M: 'חודש',
10894            MM: function (number) {
10895                if (number === 2) {
10896                    return 'חודשיים';
10897                }
10898                return number + ' חודשים';
10899            },
10900            y: 'שנה',
10901            yy: function (number) {
10902                if (number === 2) {
10903                    return 'שנתיים';
10904                } else if (number % 10 === 0 && number !== 10) {
10905                    return number + ' שנה';
10906                }
10907                return number + ' שנים';
10908            },
10909        },
10910        meridiemParse:
10911            /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,
10912        isPM: function (input) {
10913            return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(input);
10914        },
10915        meridiem: function (hour, minute, isLower) {
10916            if (hour < 5) {
10917                return 'לפנות בוקר';
10918            } else if (hour < 10) {
10919                return 'בבוקר';
10920            } else if (hour < 12) {
10921                return isLower ? 'לפנה"צ' : 'לפני הצהריים';
10922            } else if (hour < 18) {
10923                return isLower ? 'אחה"צ' : 'אחרי הצהריים';
10924            } else {
10925                return 'בערב';
10926            }
10927        },
10928    });
10929
10930    //! moment.js locale configuration
10931
10932    var symbolMap$8 = {
10933            1: '१',
10934            2: '२',
10935            3: '३',
10936            4: '४',
10937            5: '५',
10938            6: '६',
10939            7: '७',
10940            8: '८',
10941            9: '९',
10942            0: '०',
10943        },
10944        numberMap$7 = {
10945            '१': '1',
10946            '२': '2',
10947            '३': '3',
10948            '४': '4',
10949            '५': '5',
10950            '६': '6',
10951            '७': '7',
10952            '८': '8',
10953            '९': '9',
10954            '०': '0',
10955        },
10956        monthsParse$7 = [
vendor: 5,323 bytes, lines 10957-11065
10957            /^जन/i,
10958            /^फ़र|फर/i,
10959            /^मार्च/i,
10960            /^अप्रै/i,
10961            /^मई/i,
10962            /^जून/i,
10963            /^जुल/i,
10964            /^अग/i,
10965            /^सितं|सित/i,
10966            /^अक्टू/i,
10967            /^नव|नवं/i,
10968            /^दिसं|दिस/i,
10969        ],
10970        shortMonthsParse = [
10971            /^जन/i,
10972            /^फ़र/i,
10973            /^मार्च/i,
10974            /^अप्रै/i,
10975            /^मई/i,
10976            /^जून/i,
10977            /^जुल/i,
10978            /^अग/i,
10979            /^सित/i,
10980            /^अक्टू/i,
10981            /^नव/i,
10982            /^दिस/i,
10983        ];
10984
10985    hooks.defineLocale('hi', {
10986        months: {
10987            format: 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split(
10988                '_'
10989            ),
10990            standalone:
10991                'जनवरी_फरवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितंबर_अक्टूबर_नवंबर_दिसंबर'.split(
10992                    '_'
10993                ),
10994        },
10995        monthsShort:
10996            'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split('_'),
10997        weekdays: 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
10998        weekdaysShort: 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split('_'),
10999        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
11000        longDateFormat: {
11001            LT: 'A h:mm बजे',
11002            LTS: 'A h:mm:ss बजे',
11003            L: 'DD/MM/YYYY',
11004            LL: 'D MMMM YYYY',
11005            LLL: 'D MMMM YYYY, A h:mm बजे',
11006            LLLL: 'dddd, D MMMM YYYY, A h:mm बजे',
11007        },
11008
11009        monthsParse: monthsParse$7,
11010        longMonthsParse: monthsParse$7,
11011        shortMonthsParse: shortMonthsParse,
11012
11013        monthsRegex:
11014            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
11015
11016        monthsShortRegex:
11017            /^(जनवरी|जन\.?|फ़रवरी|फरवरी|फ़र\.?|मार्च?|अप्रैल|अप्रै\.?|मई?|जून?|जुलाई|जुल\.?|अगस्त|अग\.?|सितम्बर|सितंबर|सित\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर|नव\.?|दिसम्बर|दिसंबर|दिस\.?)/i,
11018
11019        monthsStrictRegex:
11020            /^(जनवरी?|फ़रवरी|फरवरी?|मार्च?|अप्रैल?|मई?|जून?|जुलाई?|अगस्त?|सितम्बर|सितंबर|सित?\.?|अक्टूबर|अक्टू\.?|नवम्बर|नवंबर?|दिसम्बर|दिसंबर?)/i,
11021
11022        monthsShortStrictRegex:
11023            /^(जन\.?|फ़र\.?|मार्च?|अप्रै\.?|मई?|जून?|जुल\.?|अग\.?|सित\.?|अक्टू\.?|नव\.?|दिस\.?)/i,
11024
11025        calendar: {
11026            sameDay: '[आज] LT',
11027            nextDay: '[कल] LT',
11028            nextWeek: 'dddd, LT',
11029            lastDay: '[कल] LT',
11030            lastWeek: '[पिछले] dddd, LT',
11031            sameElse: 'L',
11032        },
11033        relativeTime: {
11034            future: '%s में',
11035            past: '%s पहले',
11036            s: 'कुछ ही क्षण',
11037            ss: '%d सेकंड',
11038            m: 'एक मिनट',
11039            mm: '%d मिनट',
11040            h: 'एक घंटा',
11041            hh: '%d घंटे',
11042            d: 'एक दिन',
11043            dd: '%d दिन',
11044            M: 'एक महीने',
11045            MM: '%d महीने',
11046            y: 'एक वर्ष',
11047            yy: '%d वर्ष',
11048        },
11049        preparse: function (string) {
11050            return string.replace(/[१२३४५६७८९०]/g, function (match) {
11051                return numberMap$7[match];
11052            });
11053        },
11054        postformat: function (string) {
11055            return string.replace(/\d/g, function (match) {
11056                return symbolMap$8[match];
11057            });
11058        },
11059        // Hindi notation for meridiems are quite fuzzy in practice. While there exists
11060        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
11061        meridiemParse: /रात|सुबह|दोपहर|शाम/,
11062        meridiemHour: function (hour, meridiem) {
11063            if (hour === 12) {
11064                hour = 0;
11065            }
vendor: 12,402 bytes, lines 11066-11411
11066            if (meridiem === 'रात') {
11067                return hour < 4 ? hour : hour + 12;
11068            } else if (meridiem === 'सुबह') {
11069                return hour;
11070            } else if (meridiem === 'दोपहर') {
11071                return hour >= 10 ? hour : hour + 12;
11072            } else if (meridiem === 'शाम') {
11073                return hour + 12;
11074            }
11075        },
11076        meridiem: function (hour, minute, isLower) {
11077            if (hour < 4) {
11078                return 'रात';
11079            } else if (hour < 10) {
11080                return 'सुबह';
11081            } else if (hour < 17) {
11082                return 'दोपहर';
11083            } else if (hour < 20) {
11084                return 'शाम';
11085            } else {
11086                return 'रात';
11087            }
11088        },
11089        week: {
11090            dow: 0, // Sunday is the first day of the week.
11091            doy: 6, // The week that contains Jan 6th is the first week of the year.
11092        },
11093    });
11094
11095    //! moment.js locale configuration
11096
11097    function translate$3(number, withoutSuffix, key) {
11098        var result = number + ' ';
11099        switch (key) {
11100            case 'ss':
11101                if (number === 1) {
11102                    result += 'sekunda';
11103                } else if (number === 2 || number === 3 || number === 4) {
11104                    result += 'sekunde';
11105                } else {
11106                    result += 'sekundi';
11107                }
11108                return result;
11109            case 'm':
11110                return withoutSuffix ? 'jedna minuta' : 'jedne minute';
11111            case 'mm':
11112                if (number === 1) {
11113                    result += 'minuta';
11114                } else if (number === 2 || number === 3 || number === 4) {
11115                    result += 'minute';
11116                } else {
11117                    result += 'minuta';
11118                }
11119                return result;
11120            case 'h':
11121                return withoutSuffix ? 'jedan sat' : 'jednog sata';
11122            case 'hh':
11123                if (number === 1) {
11124                    result += 'sat';
11125                } else if (number === 2 || number === 3 || number === 4) {
11126                    result += 'sata';
11127                } else {
11128                    result += 'sati';
11129                }
11130                return result;
11131            case 'dd':
11132                if (number === 1) {
11133                    result += 'dan';
11134                } else {
11135                    result += 'dana';
11136                }
11137                return result;
11138            case 'MM':
11139                if (number === 1) {
11140                    result += 'mjesec';
11141                } else if (number === 2 || number === 3 || number === 4) {
11142                    result += 'mjeseca';
11143                } else {
11144                    result += 'mjeseci';
11145                }
11146                return result;
11147            case 'yy':
11148                if (number === 1) {
11149                    result += 'godina';
11150                } else if (number === 2 || number === 3 || number === 4) {
11151                    result += 'godine';
11152                } else {
11153                    result += 'godina';
11154                }
11155                return result;
11156        }
11157    }
11158
11159    hooks.defineLocale('hr', {
11160        months: {
11161            format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(
11162                '_'
11163            ),
11164            standalone:
11165                'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(
11166                    '_'
11167                ),
11168        },
11169        monthsShort:
11170            'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(
11171                '_'
11172            ),
11173        monthsParseExact: true,
11174        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
11175            '_'
11176        ),
11177        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
11178        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
11179        weekdaysParseExact: true,
11180        longDateFormat: {
11181            LT: 'H:mm',
11182            LTS: 'H:mm:ss',
11183            L: 'DD.MM.YYYY',
11184            LL: 'Do MMMM YYYY',
11185            LLL: 'Do MMMM YYYY H:mm',
11186            LLLL: 'dddd, Do MMMM YYYY H:mm',
11187        },
11188        calendar: {
11189            sameDay: '[danas u] LT',
11190            nextDay: '[sutra u] LT',
11191            nextWeek: function () {
11192                switch (this.day()) {
11193                    case 0:
11194                        return '[u] [nedjelju] [u] LT';
11195                    case 3:
11196                        return '[u] [srijedu] [u] LT';
11197                    case 6:
11198                        return '[u] [subotu] [u] LT';
11199                    case 1:
11200                    case 2:
11201                    case 4:
11202                    case 5:
11203                        return '[u] dddd [u] LT';
11204                }
11205            },
11206            lastDay: '[jučer u] LT',
11207            lastWeek: function () {
11208                switch (this.day()) {
11209                    case 0:
11210                        return '[prošlu] [nedjelju] [u] LT';
11211                    case 3:
11212                        return '[prošlu] [srijedu] [u] LT';
11213                    case 6:
11214                        return '[prošle] [subote] [u] LT';
11215                    case 1:
11216                    case 2:
11217                    case 4:
11218                    case 5:
11219                        return '[prošli] dddd [u] LT';
11220                }
11221            },
11222            sameElse: 'L',
11223        },
11224        relativeTime: {
11225            future: 'za %s',
11226            past: 'prije %s',
11227            s: 'par sekundi',
11228            ss: translate$3,
11229            m: translate$3,
11230            mm: translate$3,
11231            h: translate$3,
11232            hh: translate$3,
11233            d: 'dan',
11234            dd: translate$3,
11235            M: 'mjesec',
11236            MM: translate$3,
11237            y: 'godinu',
11238            yy: translate$3,
11239        },
11240        dayOfMonthOrdinalParse: /\d{1,2}\./,
11241        ordinal: '%d.',
11242        week: {
11243            dow: 1, // Monday is the first day of the week.
11244            doy: 7, // The week that contains Jan 7th is the first week of the year.
11245        },
11246    });
11247
11248    //! moment.js locale configuration
11249
11250    var weekEndings =
11251        'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
11252    function translate$4(number, withoutSuffix, key, isFuture) {
11253        var num = number;
11254        switch (key) {
11255            case 's':
11256                return isFuture || withoutSuffix
11257                    ? 'néhány másodperc'
11258                    : 'néhány másodperce';
11259            case 'ss':
11260                return num + (isFuture || withoutSuffix)
11261                    ? ' másodperc'
11262                    : ' másodperce';
11263            case 'm':
11264                return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
11265            case 'mm':
11266                return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
11267            case 'h':
11268                return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
11269            case 'hh':
11270                return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
11271            case 'd':
11272                return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
11273            case 'dd':
11274                return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
11275            case 'M':
11276                return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11277            case 'MM':
11278                return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
11279            case 'y':
11280                return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
11281            case 'yy':
11282                return num + (isFuture || withoutSuffix ? ' év' : ' éve');
11283        }
11284        return '';
11285    }
11286    function week(isFuture) {
11287        return (
11288            (isFuture ? '' : '[múlt] ') +
11289            '[' +
11290            weekEndings[this.day()] +
11291            '] LT[-kor]'
11292        );
11293    }
11294
11295    hooks.defineLocale('hu', {
11296        months: 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split(
11297            '_'
11298        ),
11299        monthsShort:
11300            'jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.'.split(
11301                '_'
11302            ),
11303        monthsParseExact: true,
11304        weekdays: 'vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat'.split('_'),
11305        weekdaysShort: 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),
11306        weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),
11307        longDateFormat: {
11308            LT: 'H:mm',
11309            LTS: 'H:mm:ss',
11310            L: 'YYYY.MM.DD.',
11311            LL: 'YYYY. MMMM D.',
11312            LLL: 'YYYY. MMMM D. H:mm',
11313            LLLL: 'YYYY. MMMM D., dddd H:mm',
11314        },
11315        meridiemParse: /de|du/i,
11316        isPM: function (input) {
11317            return input.charAt(1).toLowerCase() === 'u';
11318        },
11319        meridiem: function (hours, minutes, isLower) {
11320            if (hours < 12) {
11321                return isLower === true ? 'de' : 'DE';
11322            } else {
11323                return isLower === true ? 'du' : 'DU';
11324            }
11325        },
11326        calendar: {
11327            sameDay: '[ma] LT[-kor]',
11328            nextDay: '[holnap] LT[-kor]',
11329            nextWeek: function () {
11330                return week.call(this, true);
11331            },
11332            lastDay: '[tegnap] LT[-kor]',
11333            lastWeek: function () {
11334                return week.call(this, false);
11335            },
11336            sameElse: 'L',
11337        },
11338        relativeTime: {
11339            future: '%s múlva',
11340            past: '%s',
11341            s: translate$4,
11342            ss: translate$4,
11343            m: translate$4,
11344            mm: translate$4,
11345            h: translate$4,
11346            hh: translate$4,
11347            d: translate$4,
11348            dd: translate$4,
11349            M: translate$4,
11350            MM: translate$4,
11351            y: translate$4,
11352            yy: translate$4,
11353        },
11354        dayOfMonthOrdinalParse: /\d{1,2}\./,
11355        ordinal: '%d.',
11356        week: {
11357            dow: 1, // Monday is the first day of the week.
11358            doy: 4, // The week that contains Jan 4th is the first week of the year.
11359        },
11360    });
11361
11362    //! moment.js locale configuration
11363
11364    hooks.defineLocale('hy-am', {
11365        months: {
11366            format: 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split(
11367                '_'
11368            ),
11369            standalone:
11370                'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split(
11371                    '_'
11372                ),
11373        },
11374        monthsShort: 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_'),
11375        weekdays:
11376            'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split(
11377                '_'
11378            ),
11379        weekdaysShort: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11380        weekdaysMin: 'կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ'.split('_'),
11381        longDateFormat: {
11382            LT: 'HH:mm',
11383            LTS: 'HH:mm:ss',
11384            L: 'DD.MM.YYYY',
11385            LL: 'D MMMM YYYY Õ©.',
11386            LLL: 'D MMMM YYYY Õ©., HH:mm',
11387            LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',
11388        },
11389        calendar: {
11390            sameDay: '[այսօր] LT',
11391            nextDay: '[Õ¾Õ¡Õ²Õ¨] LT',
11392            lastDay: '[երեկ] LT',
11393            nextWeek: function () {
11394                return 'dddd [օրը ժամը] LT';
11395            },
11396            lastWeek: function () {
11397                return '[անցած] dddd [օրը ժամը] LT';
11398            },
11399            sameElse: 'L',
11400        },
11401        relativeTime: {
11402            future: '%s Õ°Õ¥Õ¿Õ¸',
11403            past: '%s Õ¡Õ¼Õ¡Õ»',
11404            s: 'մի քանի վայրկյան',
11405            ss: '%d վայրկյան',
11406            m: 'րոպե',
11407            mm: '%d րոպե',
11408            h: 'ÕªÕ¡Õ´',
11409            hh: '%d ÕªÕ¡Õ´',
11410            d: 'օր',
11411            dd: '%d օր',
11412            M: 'Õ¡Õ´Õ«Õ½',
11413            MM: '%d Õ¡Õ´Õ«Õ½',
11414            y: 'տարի',
11415            yy: '%d տարի',
11416        },
11417        meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,
11418        isPM: function (input) {
11419            return /^(ցերեկվա|երեկոյան)$/.test(input);
11420        },
11421        meridiem: function (hour) {
11422            if (hour < 4) {
11423                return 'գիշերվա';
11424            } else if (hour < 12) {
11425                return 'Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡';
11426            } else if (hour < 17) {
11427                return 'ցերեկվա';
11428            } else {
11429                return 'երեկոյան';
11430            }
11431        },
11432        dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/,
11433        ordinal: function (number, period) {
11434            switch (period) {
11435                case 'DDD':
11436                case 'w':
11437                case 'W':
11438                case 'DDDo':
11439                    if (number === 1) {
11440                        return number + '-Õ«Õ¶';
11441                    }
11442                    return number + '-րդ';
11443                default:
11444                    return number;
11445            }
11446        },
11447        week: {
11448            dow: 1, // Monday is the first day of the week.
11449            doy: 7, // The week that contains Jan 7th is the first week of the year.
11450        },
11451    });
11452
11453    //! moment.js locale configuration
11454
11455    hooks.defineLocale('id', {
11456        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(
11457            '_'
11458        ),
11459        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),
11460        weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),
11461        weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),
11462        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),
11463        longDateFormat: {
11464            LT: 'HH.mm',
11465            LTS: 'HH.mm.ss',
11466            L: 'DD/MM/YYYY',
11467            LL: 'D MMMM YYYY',
11468            LLL: 'D MMMM YYYY [pukul] HH.mm',
11469            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11470        },
11471        meridiemParse: /pagi|siang|sore|malam/,
11472        meridiemHour: function (hour, meridiem) {
11473            if (hour === 12) {
11474                hour = 0;
11475            }
11476            if (meridiem === 'pagi') {
11477                return hour;
11478            } else if (meridiem === 'siang') {
11479                return hour >= 11 ? hour : hour + 12;
11480            } else if (meridiem === 'sore' || meridiem === 'malam') {
11481                return hour + 12;
11482            }
11483        },
11484        meridiem: function (hours, minutes, isLower) {
11485            if (hours < 11) {
11486                return 'pagi';
11487            } else if (hours < 15) {
11488                return 'siang';
11489            } else if (hours < 19) {
11490                return 'sore';
11491            } else {
11492                return 'malam';
11493            }
11494        },
11495        calendar: {
11496            sameDay: '[Hari ini pukul] LT',
11497            nextDay: '[Besok pukul] LT',
11498            nextWeek: 'dddd [pukul] LT',
11499            lastDay: '[Kemarin pukul] LT',
11500            lastWeek: 'dddd [lalu pukul] LT',
11501            sameElse: 'L',
11502        },
11503        relativeTime: {
11504            future: 'dalam %s',
11505            past: '%s yang lalu',
11506            s: 'beberapa detik',
11507            ss: '%d detik',
11508            m: 'semenit',
11509            mm: '%d menit',
11510            h: 'sejam',
11511            hh: '%d jam',
11512            d: 'sehari',
11513            dd: '%d hari',
11514            M: 'sebulan',
11515            MM: '%d bulan',
11516            y: 'setahun',
11517            yy: '%d tahun',
11518        },
11519        week: {
11520            dow: 0, // Sunday is the first day of the week.
11521            doy: 6, // The week that contains Jan 6th is the first week of the year.
11522        },
11523    });
11524
11525    //! moment.js locale configuration
11526
11527    function plural$2(n) {
11528        if (n % 100 === 11) {
11529            return true;
11530        } else if (n % 10 === 1) {
11531            return false;
11532        }
11533        return true;
11534    }
11535    function translate$5(number, withoutSuffix, key, isFuture) {
11536        var result = number + ' ';
11537        switch (key) {
11538            case 's':
11539                return withoutSuffix || isFuture
11540                    ? 'nokkrar sekúndur'
11541                    : 'nokkrum sekúndum';
11542            case 'ss':
11543                if (plural$2(number)) {
11544                    return (
11545                        result +
11546                        (withoutSuffix || isFuture ? 'sekúndur' : 'sekúndum')
11547                    );
11548                }
11549                return result + 'sekúnda';
11550            case 'm':
11551                return withoutSuffix ? 'mínúta' : 'mínútu';
11552            case 'mm':
11553                if (plural$2(number)) {
11554                    return (
11555                        result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum')
11556                    );
11557                } else if (withoutSuffix) {
11558                    return result + 'mínúta';
11559                }
11560                return result + 'mínútu';
11561            case 'hh':
11562                if (plural$2(number)) {
11563                    return (
11564                        result +
11565                        (withoutSuffix || isFuture
11566                            ? 'klukkustundir'
11567                            : 'klukkustundum')
11568                    );
11569                }
11570                return result + 'klukkustund';
11571            case 'd':
11572                if (withoutSuffix) {
11573                    return 'dagur';
11574                }
11575                return isFuture ? 'dag' : 'degi';
11576            case 'dd':
11577                if (plural$2(number)) {
11578                    if (withoutSuffix) {
11579                        return result + 'dagar';
11580                    }
11581                    return result + (isFuture ? 'daga' : 'dögum');
11582                } else if (withoutSuffix) {
11583                    return result + 'dagur';
11584                }
11585                return result + (isFuture ? 'dag' : 'degi');
11586            case 'M':
11587                if (withoutSuffix) {
11588                    return 'mánuður';
11589                }
11590                return isFuture ? 'mánuð' : 'mánuði';
11591            case 'MM':
11592                if (plural$2(number)) {
11593                    if (withoutSuffix) {
11594                        return result + 'mánuðir';
11595                    }
11596                    return result + (isFuture ? 'mánuði' : 'mánuðum');
11597                } else if (withoutSuffix) {
11598                    return result + 'mánuður';
11599                }
11600                return result + (isFuture ? 'mánuð' : 'mánuði');
11601            case 'y':
11602                return withoutSuffix || isFuture ? 'ár' : 'ári';
11603            case 'yy':
11604                if (plural$2(number)) {
11605                    return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
11606                }
11607                return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
11608        }
11609    }
11610
11611    hooks.defineLocale('is', {
11612        months: 'janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember'.split(
11613            '_'
11614        ),
11615        monthsShort: 'jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des'.split('_'),
11616        weekdays:
11617            'sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur'.split(
11618                '_'
11619            ),
11620        weekdaysShort: 'sun_mán_þri_mið_fim_fös_lau'.split('_'),
11621        weekdaysMin: 'Su_Má_Þr_Mi_Fi_Fö_La'.split('_'),
11622        longDateFormat: {
11623            LT: 'H:mm',
11624            LTS: 'H:mm:ss',
11625            L: 'DD.MM.YYYY',
11626            LL: 'D. MMMM YYYY',
11627            LLL: 'D. MMMM YYYY [kl.] H:mm',
11628            LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',
11629        },
11630        calendar: {
11631            sameDay: '[í dag kl.] LT',
11632            nextDay: '[á morgun kl.] LT',
11633            nextWeek: 'dddd [kl.] LT',
11634            lastDay: '[í gær kl.] LT',
11635            lastWeek: '[síðasta] dddd [kl.] LT',
11636            sameElse: 'L',
11637        },
11638        relativeTime: {
11639            future: 'eftir %s',
11640            past: 'fyrir %s síðan',
11641            s: translate$5,
11642            ss: translate$5,
11643            m: translate$5,
11644            mm: translate$5,
11645            h: 'klukkustund',
11646            hh: translate$5,
11647            d: translate$5,
11648            dd: translate$5,
11649            M: translate$5,
11650            MM: translate$5,
11651            y: translate$5,
11652            yy: translate$5,
11653        },
11654        dayOfMonthOrdinalParse: /\d{1,2}\./,
11655        ordinal: '%d.',
11656        week: {
11657            dow: 1, // Monday is the first day of the week.
11658            doy: 4, // The week that contains Jan 4th is the first week of the year.
11659        },
11660    });
11661
11662    //! moment.js locale configuration
11663
11664    hooks.defineLocale('it-ch', {
11665        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11666            '_'
11667        ),
11668        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11669        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11670            '_'
11671        ),
11672        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11673        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11674        longDateFormat: {
11675            LT: 'HH:mm',
11676            LTS: 'HH:mm:ss',
11677            L: 'DD.MM.YYYY',
11678            LL: 'D MMMM YYYY',
11679            LLL: 'D MMMM YYYY HH:mm',
11680            LLLL: 'dddd D MMMM YYYY HH:mm',
11681        },
11682        calendar: {
11683            sameDay: '[Oggi alle] LT',
11684            nextDay: '[Domani alle] LT',
11685            nextWeek: 'dddd [alle] LT',
11686            lastDay: '[Ieri alle] LT',
11687            lastWeek: function () {
11688                switch (this.day()) {
11689                    case 0:
11690                        return '[la scorsa] dddd [alle] LT';
11691                    default:
11692                        return '[lo scorso] dddd [alle] LT';
11693                }
11694            },
11695            sameElse: 'L',
11696        },
11697        relativeTime: {
11698            future: function (s) {
11699                return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;
11700            },
11701            past: '%s fa',
11702            s: 'alcuni secondi',
11703            ss: '%d secondi',
11704            m: 'un minuto',
11705            mm: '%d minuti',
11706            h: "un'ora",
11707            hh: '%d ore',
11708            d: 'un giorno',
11709            dd: '%d giorni',
11710            M: 'un mese',
11711            MM: '%d mesi',
11712            y: 'un anno',
11713            yy: '%d anni',
11714        },
11715        dayOfMonthOrdinalParse: /\d{1,2}º/,
11716        ordinal: '%dº',
11717        week: {
11718            dow: 1, // Monday is the first day of the week.
11719            doy: 4, // The week that contains Jan 4th is the first week of the year.
11720        },
11721    });
11722
11723    //! moment.js locale configuration
11724
11725    hooks.defineLocale('it', {
11726        months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(
11727            '_'
11728        ),
11729        monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),
11730        weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split(
11731            '_'
11732        ),
11733        weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),
11734        weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),
11735        longDateFormat: {
11736            LT: 'HH:mm',
11737            LTS: 'HH:mm:ss',
11738            L: 'DD/MM/YYYY',
11739            LL: 'D MMMM YYYY',
11740            LLL: 'D MMMM YYYY HH:mm',
11741            LLLL: 'dddd D MMMM YYYY HH:mm',
11742        },
11743        calendar: {
11744            sameDay: function () {
11745                return (
11746                    '[Oggi a' +
11747                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11748                    ']LT'
11749                );
11750            },
11751            nextDay: function () {
11752                return (
11753                    '[Domani a' +
11754                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11755                    ']LT'
11756                );
11757            },
11758            nextWeek: function () {
11759                return (
11760                    'dddd [a' +
11761                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11762                    ']LT'
11763                );
11764            },
11765            lastDay: function () {
11766                return (
11767                    '[Ieri a' +
11768                    (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : "ll'") +
11769                    ']LT'
11770                );
11771            },
11772            lastWeek: function () {
11773                switch (this.day()) {
11774                    case 0:
11775                        return (
11776                            '[La scorsa] dddd [a' +
11777                            (this.hours() > 1
11778                                ? 'lle '
11779                                : this.hours() === 0
11780                                ? ' '
11781                                : "ll'") +
11782                            ']LT'
11783                        );
11784                    default:
11785                        return (
11786                            '[Lo scorso] dddd [a' +
11787                            (this.hours() > 1
11788                                ? 'lle '
11789                                : this.hours() === 0
11790                                ? ' '
11791                                : "ll'") +
11792                            ']LT'
11793                        );
11794                }
11795            },
11796            sameElse: 'L',
11797        },
11798        relativeTime: {
11799            future: 'tra %s',
11800            past: '%s fa',
11801            s: 'alcuni secondi',
11802            ss: '%d secondi',
11803            m: 'un minuto',
11804            mm: '%d minuti',
11805            h: "un'ora",
11806            hh: '%d ore',
11807            d: 'un giorno',
11808            dd: '%d giorni',
11809            w: 'una settimana',
11810            ww: '%d settimane',
11811            M: 'un mese',
11812            MM: '%d mesi',
11813            y: 'un anno',
11814            yy: '%d anni',
11815        },
11816        dayOfMonthOrdinalParse: /\d{1,2}º/,
11817        ordinal: '%dº',
11818        week: {
11819            dow: 1, // Monday is the first day of the week.
11820            doy: 4, // The week that contains Jan 4th is the first week of the year.
11821        },
11822    });
11823
11824    //! moment.js locale configuration
11825
11826    hooks.defineLocale('ja', {
11827        eras: [
11828            {
11829                since: '2019-05-01',
11830                offset: 1,
11831                name: '令和',
11832                narrow: '㋿',
11833                abbr: 'R',
11834            },
11835            {
11836                since: '1989-01-08',
11837                until: '2019-04-30',
11838                offset: 1,
11839                name: '平成',
11840                narrow: '㍻',
11841                abbr: 'H',
11842            },
11843            {
11844                since: '1926-12-25',
11845                until: '1989-01-07',
11846                offset: 1,
11847                name: '昭和',
11848                narrow: '㍼',
11849                abbr: 'S',
11850            },
11851            {
11852                since: '1912-07-30',
11853                until: '1926-12-24',
11854                offset: 1,
11855                name: '大正',
11856                narrow: '㍽',
11857                abbr: 'T',
11858            },
11859            {
11860                since: '1873-01-01',
11861                until: '1912-07-29',
11862                offset: 6,
11863                name: '明治',
11864                narrow: '㍾',
11865                abbr: 'M',
11866            },
11867            {
11868                since: '0001-01-01',
11869                until: '1873-12-31',
11870                offset: 1,
11871                name: '西暦',
11872                narrow: 'AD',
11873                abbr: 'AD',
11874            },
11875            {
11876                since: '0000-12-31',
11877                until: -Infinity,
11878                offset: 1,
11879                name: '紀元前',
11880                narrow: 'BC',
11881                abbr: 'BC',
11882            },
11883        ],
11884        eraYearOrdinalRegex: /(元|\d+)年/,
11885        eraYearOrdinalParse: function (input, match) {
11886            return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);
11887        },
11888        months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),
11889        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
11890            '_'
11891        ),
11892        weekdays: '日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日'.split('_'),
11893        weekdaysShort: '日_月_火_水_木_金_土'.split('_'),
11894        weekdaysMin: '日_月_火_水_木_金_土'.split('_'),
11895        longDateFormat: {
11896      
11896      LT: 'HH:mm',
11897            LTS: 'HH:mm:ss',
11898            L: 'YYYY/MM/DD',
11899            LL: 'YYYY年M月D日',
11900            LLL: 'YYYY年M月D日 HH:mm',
11901            LLLL: 'YYYY年M月D日 dddd HH:mm',
11902            l: 'YYYY/MM/DD',
11903            ll: 'YYYY年M月D日',
11904            lll: 'YYYY年M月D日 HH:mm',
11905            llll: 'YYYY年M月D日(ddd) HH:mm',
11906        },
11907        meridiemParse: /午前|午後/i,
11908        isPM: function (input) {
11909            return input === '午後';
11910        },
11911        meridiem: function (hour, minute, isLower) {
11912            if (hour < 12) {
11913                return '午前';
11914            } else {
11915                return '午後';
11916            }
11917        },
11918        calendar: {
11919            sameDay: '[今日] LT',
11920            nextDay: '[明日] LT',
11921            nextWeek: function (now) {
11922                if (now.week() !== this.week()) {
11923                    return '[来週]dddd LT';
11924                } else {
11925                    return 'dddd LT';
11926                }
11927            },
11928            lastDay: '[昨日] LT',
11929            lastWeek: function (now) {
11930                if (this.week() !== now.week()) {
11931                    return '[先週]dddd LT';
11932                } else {
11933                    return 'dddd LT';
11934                }
11935            },
11936            sameElse: 'L',
11937        },
11938        dayOfMonthOrdinalParse: /\d{1,2}日/,
11939        ordinal: function (number, period) {
11940            switch (period) {
11941                case 'y':
11942                    return number === 1 ? '元年' : number + '年';
11943                case 'd':
11944                case 'D':
11945                case 'DDD':
11946                    return number + '日';
11947                default:
11948                    return number;
11949            }
11950        },
11951        relativeTime: {
11952            future: '%s後',
11953            past: '%s前',
11954            s: '数秒',
11955            ss: '%d秒',
11956            m: '1分',
11957            mm: '%d分',
11958            h: '1時間',
11959            hh: '%d時間',
11960            d: '1日',
11961            dd: '%d日',
11962            M: '1ヶ月',
11963            MM: '%dヶ月',
11964            y: '1å¹´',
11965            yy: '%då¹´',
11966        },
11967    });
11968
11969    //! moment.js locale configuration
11970
11971    hooks.defineLocale('jv', {
11972        months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(
11973            '_'
11974        ),
11975        monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),
11976        weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),
11977        weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),
11978        weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),
11979        longDateFormat: {
11980            LT: 'HH.mm',
11981            LTS: 'HH.mm.ss',
11982            L: 'DD/MM/YYYY',
11983            LL: 'D MMMM YYYY',
11984            LLL: 'D MMMM YYYY [pukul] HH.mm',
11985            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
11986        },
11987        meridiemParse: /enjing|siyang|sonten|ndalu/,
11988        meridiemHour: function (hour, meridiem) {
11989            if (hour === 12) {
11990                hour = 0;
11991            }
11992            if (meridiem === 'enjing') {
11993                return hour;
11994            } else if (meridiem === 'siyang') {
11995                return hour >= 11 ? hour : hour + 12;
11996            } else if (meridiem === 'sonten' || meridiem === 'ndalu') {
11997                return hour + 12;
11998            }
11999        },
12000        meridiem: function (hours, minutes, isLower) {
12001            if (hours < 11) {
12002                return 'enjing';
12003            } else if (hours < 15) {
12004                return 'siyang';
12005            } else if (hours < 19) {
12006                return 'sonten';
12007            } else {
12008                return 'ndalu';
12009            }
12010        },
12011        calendar: {
12012            sameDay: '[Dinten puniko pukul] LT',
12013            nextDay: '[Mbenjang pukul] LT',
12014            nextWeek: 'dddd [pukul] LT',
12015            lastDay: '[Kala wingi pukul] LT',
12016            lastWeek: 'dddd [kepengker pukul] LT',
12017            sameElse: 'L',
12018        },
12019        relativeTime: {
12020            future: 'wonten ing %s',
12021            past: '%s ingkang kepengker',
12022            s: 'sawetawis detik',
12023            ss: '%d detik',
12024            m: 'setunggal menit',
12025            mm: '%d menit',
12026            h: 'setunggal jam',
12027            hh: '%d jam',
12028            d: 'sedinten',
12029            dd: '%d dinten',
12030            M: 'sewulan',
12031            MM: '%d wulan',
12032            y: 'setaun',
12033            yy: '%d taun',
12034        },
12035        week: {
12036            dow: 1, // Monday is the first day of the week.
12037            doy: 7, // The week that contains Jan 7th is the first week of the year.
12038        },
12039    });
12040
12041    //! moment.js locale configuration
12042
12043    hooks.defineLocale('ka', {
12044        months: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split(
12045            '_'
12046        ),
12047        monthsShort: 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
12048        weekdays: {
12049            standalone:
12050                'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.
12050split(
12051                    '_'
12052                ),
12053            format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split(
12054                '_'
12055            ),
12056            isFormat: /(წინა|შემდეგ)/,
12057        },
12058        weekdaysShort: 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
12059        weekdaysMin: 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
12060        longDateFormat: {
12061            LT: 'HH:mm',
12062            LTS: 'HH:mm:ss',
12063            L: 'DD/MM/YYYY',
12064            LL: 'D MMMM YYYY',
12065            LLL: 'D MMMM YYYY HH:mm',
12066            LLLL: 'dddd, D MMMM YYYY HH:mm',
12067        },
12068        calendar: {
12069            sameDay: '[დღეს] LT[-ზე]',
12070            nextDay: '[ხვალ] LT[-ზე]',
12071            lastDay: '[გუშინ] LT[-ზე]',
12072            nextWeek: '[შემდეგ] dddd LT[-ზე]',
12073            lastWeek: '[წინა] dddd LT-ზე',
12074            sameElse: 'L',
12075        },
12076        relativeTime: {
12077            future: function (s) {
12078                return s.replace(
12079                    /(წამ|წუთ|საათ|წელ|დღ|თვ)(ი|ე)/,
12080                    function ($0, $1, $2) {
12081                        return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';
12082                    }
12083                );
12084            },
12085            past: function (s) {
12086                if (/(წამი|წუთი|საათი|დღე|თვე)/.test(s)) {
12087                    return s.replace(/(ი|ე)$/, 'ის წინ');
12088                }
12089                if (/წელი/.test(s)) {
12090                    return s.replace(/წელი$/, 'წლის წინ');
12091                }
12092                return s;
12093            },
12094            s: 'რამდენიმე წამი',
12095            ss: '%d წამი',
12096            m: 'წუთი',
12097            mm: '%d წუთი',
12098            h: 'საათი',
12099            hh: '%d საათი',
12100            d: 'დღე',
12101            dd: '%d დღე',
12102            M: 'თვე',
12103            MM: '%d თვე',
12104            y: 'წელი',
12105            yy: '%d წელი',
12106        },
12107        dayOfMonthOrdinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
12108        ordinal: function (number) {
12109            if (number === 0) {
12110                return number;
12111            }
12112            if (number === 1) {
12113                return number + '-ლი';
12114            }
12115            if (
12116                number < 20 ||
12117                (number <= 100 && number % 20 === 0) ||
12118                number % 100 === 0
12119            ) {
12120                return 'მე-' + number;
12121            }
12122            return number + '-ე';
12123        },
12124        week: {
12125            dow: 1,
12126            doy: 7,
12127        },
12128    });
12129
12130    //! moment.js locale configuration
12131
12132    var suffixes$1 = {
12133        0: '-ші',
12134        1: '-ші',
12135        2: '-ші',
12136        3: '-ші',
12137        4: '-ші',
12138        5: '-ші',
12139        6: '-шы',
12140        7: '-ші',
12141        8: '-ші',
12142        9: '-шы',
12143        10: '-шы',
12144        20: '-шы',
12145        30: '-шы',
12146        40: '-шы',
12147        50: '-ші',
12148        60: '-шы',
12149        70: '-ші',
12150        80: '-ші',
12151        90: '-шы',
12152        100: '-ші',
12153    };
12154
12155    hooks.defineLocale('kk', {
12156        months: 'қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан'.split(
12157            '_'
12158        ),
12159        monthsShort: 'қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел'.split('_'),
12160        weekdays: 'жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(
12161            '_'
12162        ),
12163        weekdaysShort: 'жек_дүй_сей_сәр_бей_жұм_сен'.split('_'),
12164        weekdaysMin: 'жк_дй_сй_ср_бй_жм_сн'.split('_'),
12165        longDateFormat: {
12166            LT: 'HH:mm',
12167            LTS: 'HH:mm:ss',
12168            L: 'DD.MM.YYYY',
12169            LL: 'D MMMM YYYY',
12170            LLL: 'D MMMM YYYY HH:mm',
12171            LLLL: 'dddd, D MMMM YYYY HH:mm',
12172        },
12173        calendar: {
12174            sameDay: '[Бүгін сағат] LT',
12175            nextDay: '[Ертең сағат] LT',
12176            nextWeek: 'dddd [сағат] LT',
12177            lastDay: '[Кеше сағат] LT',
12178            lastWeek: '[Өткен аптаның] dddd [сағат] LT',
12179            sameElse: 'L',
12180        },
12181        relativeTime: {
12182            future: '%s ішінде',
12183            past: '%s бұрын',
12184            s: 'бірнеше секунд',
12185            ss: '%d секунд',
12186            m: 'бір минут',
12187            mm: '%d минут',
12188            h: 'бір сағат',
12189            hh: '%d сағат',
12190            d: 'бір күн',
12191            dd: '%d күн',
12192            M: 'бір ай',
12193            MM: '%d ай',
12194            y: 'бір жыл',
12195            yy: '%d жыл',
12196        },
12197        dayOfMonthOrdinalParse: /\d{1,2}-(ші|шы)/,
12198        ordinal: function (number) {
12199            var a = number % 10,
12200                b = number >= 100 ? 100 : null;
12201            return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);
12202        },
12203        week: {
12204            dow: 1, // Monday is the first day of the week.
12205            doy: 7, // The week that contains Jan 7th is the first week of the year.
12206        },
12207    });
12208
12209    //! moment.js locale configuration
12210
12211    var symbolMap$9 = {
12212            1: '១',
12213            2: '២',
12214            3: '៣',
12215            4: '៤',
12216            5: '៥',
12217            6: '៦',
12218            7: '៧',
12219            8: '៨',
12220            9: '៩',
12221            0: '០',
12222        },
12223        numberMap$8 = {
12224            '១': '1',
12225            '២': '2',
12226            '៣': '3',
12227            '៤': '4',
12228            '៥': '5',
12229            '៦': '6',
12230            '៧': '7',
12231            '៨': '8',
12232            '៩': '9',
12233            '០': '0',
12234        };
12235
12236    hooks.defineLocale('km', {
12237        months: 'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12238            '_'
12239        ),
12240        monthsShort:
12241            'មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ'.split(
12242                '_'
12243            ),
12244        weekdays: 'អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍'.split('_'),
12245        weekdaysShort: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12246        weekdaysMin: 'អា_ច_អ_ព_ព្រ_សុ_ស'.split('_'),
12247        weekdaysParseExact: true,
12248        longDateFormat: {
12249            LT: 'HH:mm',
12250            LTS: 'HH:mm:ss',
12251            L: 'DD/MM/YYYY',
12252            LL: 'D MMMM YYYY',
12253            LLL: 'D MMMM YYYY HH:mm',
12254            LLLL: 'dddd, D MMMM YYYY HH:mm',
12255        },
12256        meridiemParse: /ព្រឹក|ល្ងាច/,
12257        isPM: function (input) {
12258            return input === 'ល្ងាច';
12259        },
12260        meridiem: function (hour, minute, isLower) {
12261            if (hour < 12) {
vendor: 22,558 bytes, lines 12262-12900
12262                return 'ព្រឹក';
12263            } else {
12264                return 'ល្ងាច';
12265            }
12266        },
12267        calendar: {
12268            sameDay: '[ថ្ងៃនេះ ម៉ោង] LT',
12269            nextDay: '[ស្អែក ម៉ោង] LT',
12270            nextWeek: 'dddd [ម៉ោង] LT',
12271            lastDay: '[ម្សិលមិញ ម៉ោង] LT',
12272            lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
12273            sameElse: 'L',
12274        },
12275        relativeTime: {
12276            future: '%sទៀត',
12277            past: '%sមុន',
12278            s: 'ប៉ុន្មានវិនាទី',
12279            ss: '%d វិនាទី',
12280            m: 'មួយនាទី',
12281            mm: '%d នាទី',
12282            h: 'មួយម៉ោង',
12283            hh: '%d ម៉ោង',
12284            d: 'មួយថ្ងៃ',
12285            dd: '%d ថ្ងៃ',
12286            M: 'មួយខែ',
12287            MM: '%d ខែ',
12288            y: 'មួយឆ្នាំ',
12289            yy: '%d ឆ្នាំ',
12290        },
12291        dayOfMonthOrdinalParse: /ទី\d{1,2}/,
12292        ordinal: 'ទី%d',
12293        preparse: function (string) {
12294            return string.replace(/[១២៣៤៥៦៧៨៩០]/g, function (match) {
12295                return numberMap$8[match];
12296            });
12297        },
12298        postformat: function (string) {
12299            return string.replace(/\d/g, function (match) {
12300                return symbolMap$9[match];
12301            });
12302        },
12303        week: {
12304            dow: 1, // Monday is the first day of the week.
12305            doy: 4, // The week that contains Jan 4th is the first week of the year.
12306        },
12307    });
12308
12309    //! moment.js locale configuration
12310
12311    var symbolMap$a = {
12312            1: 'à³§',
12313            2: '೨',
12314            3: '೩',
12315            4: '೪',
12316            5: '೫',
12317            6: '೬',
12318            7: 'à³­',
12319            8: 'à³®',
12320            9: '೯',
12321            0: '೦',
12322        },
12323        numberMap$9 = {
12324            'à³§': '1',
12325            '೨': '2',
12326            '೩': '3',
12327            '೪': '4',
12328            '೫': '5',
12329            '೬': '6',
12330            'à³­': '7',
12331            'à³®': '8',
12332            '೯': '9',
12333            '೦': '0',
12334        };
12335
12336    hooks.defineLocale('kn', {
12337        months: 'ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್'.split(
12338            '_'
12339        ),
12340        monthsShort:
12341            'ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂ_ಅಕ್ಟೋ_ನವೆಂ_ಡಿಸೆಂ'.split(
12342                '_'
12343            ),
12344        monthsParseExact: true,
12345        weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ'.split(
12346            '_'
12347        ),
12348        weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ'.split('_'),
12349        weekdaysMin: 'ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ'.split('_'),
12350        longDateFormat: {
12351            LT: 'A h:mm',
12352            LTS: 'A h:mm:ss',
12353            L: 'DD/MM/YYYY',
12354            LL: 'D MMMM YYYY',
12355            LLL: 'D MMMM YYYY, A h:mm',
12356            LLLL: 'dddd, D MMMM YYYY, A h:mm',
12357        },
12358        calendar: {
12359            sameDay: '[ಇಂದು] LT',
12360            nextDay: '[ನಾಳೆ] LT',
12361            nextWeek: 'dddd, LT',
12362            lastDay: '[ನಿನ್ನೆ] LT',
12363            lastWeek: '[ಕೊನೆಯ] dddd, LT',
12364            sameElse: 'L',
12365        },
12366        relativeTime: {
12367            future: '%s ನಂತರ',
12368            past: '%s ಹಿಂದೆ',
12369            s: 'ಕೆಲವು ಕ್ಷಣಗಳು',
12370            ss: '%d ಸೆಕೆಂಡುಗಳು',
12371            m: 'ಒಂದು ನಿಮಿಷ',
12372            mm: '%d ನಿಮಿಷ',
12373            h: 'ಒಂದು ಗಂಟೆ',
12374            hh: '%d ಗಂಟೆ',
12375            d: 'ಒಂದು ದಿನ',
12376            dd: '%d ದಿನ',
12377            M: 'ಒಂದು ತಿಂಗಳು',
12378            MM: '%d ತಿಂಗಳು',
12379            y: 'ಒಂದು ವರ್ಷ',
12380            yy: '%d ವರ್ಷ',
12381        },
12382        preparse: function (string) {
12383            return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {
12384                return numberMap$9[match];
12385            });
12386        },
12387        postformat: function (string) {
12388            return string.replace(/\d/g, function (match) {
12389                return symbolMap$a[match];
12390            });
12391        },
12392        meridiemParse: /ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,
12393        meridiemHour: function (hour, meridiem) {
12394            if (hour === 12) {
12395                hour = 0;
12396            }
12397            if (meridiem === 'ರಾತ್ರಿ') {
12398                return hour < 4 ? hour : hour + 12;
12399            } else if (meridiem === 'ಬೆಳಿಗ್ಗೆ') {
12400                return hour;
12401            } else if (meridiem === 'ಮಧ್ಯಾಹ್ನ') {
12402                return hour >= 10 ? hour : hour + 12;
12403            } else if (meridiem === 'ಸಂಜೆ') {
12404                return hour + 12;
12405            }
12406        },
12407        meridiem: function (hour, minute, isLower) {
12408            if (hour < 4) {
12409                return 'ರಾತ್ರಿ';
12410            } else if (hour < 10) {
12411                return 'ಬೆಳಿಗ್ಗೆ';
12412            } else if (hour < 17) {
12413                return 'ಮಧ್ಯಾಹ್ನ';
12414            } else if (hour < 20) {
12415                return 'ಸಂಜೆ';
12416            } else {
12417                return 'ರಾತ್ರಿ';
12418            }
12419        },
12420        dayOfMonthOrdinalParse: /\d{1,2}(ನೇ)/,
12421        ordinal: function (number) {
12422            return number + 'ನೇ';
12423        },
12424        week: {
12425            dow: 0, // Sunday is the first day of the week.
12426            doy: 6, // The week that contains Jan 6th is the first week of the year.
12427        },
12428    });
12429
12430    //! moment.js locale configuration
12431
12432    hooks.defineLocale('ko', {
12433        months: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split('_'),
12434        monthsShort: '1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월'.split(
12435            '_'
12436        ),
12437        weekdays: '일요일_월요일_화요일_수요일_목요일_금요일_토요일'.split('_'),
12438        weekdaysShort: '일_월_화_수_목_금_토'.split('_'),
12439        weekdaysMin: '일_월_화_수_목_금_토'.split('_'),
12440        longDateFormat: {
12441            LT: 'A h:mm',
12442            LTS: 'A h:mm:ss',
12443            L: 'YYYY.MM.DD.',
12444            LL: 'YYYY년 MMMM D일',
12445            LLL: 'YYYY년 MMMM D일 A h:mm',
12446            LLLL: 'YYYY년 MMMM D일 dddd A h:mm',
12447            l: 'YYYY.MM.DD.',
12448            ll: 'YYYY년 MMMM D일',
12449            lll: 'YYYY년 MMMM D일 A h:mm',
12450            llll: 'YYYY년 MMMM D일 dddd A h:mm',
12451        },
12452        calendar: {
12453            sameDay: '오늘 LT',
12454            nextDay: '내일 LT',
12455            nextWeek: 'dddd LT',
12456            lastDay: '어제 LT',
12457            lastWeek: '지난주 dddd LT',
12458            sameElse: 'L',
12459        },
12460        relativeTime: {
12461            future: '%s 후',
12462            past: '%s 전',
12463            s: '몇 초',
12464            ss: '%d초',
12465            m: '1분',
12466            mm: '%d분',
12467            h: '한 시간',
12468            hh: '%d시간',
12469            d: '하루',
12470            dd: '%d일',
12471            M: '한 달',
12472            MM: '%d달',
12473            y: '일 년',
12474            yy: '%d년',
12475        },
12476        dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/,
12477        ordinal: function (number, period) {
12478            switch (period) {
12479                case 'd':
12480                case 'D':
12481                case 'DDD':
12482                    return number + '일';
12483                case 'M':
12484                    return number + '월';
12485                case 'w':
12486                case 'W':
12487                    return number + '주';
12488                default:
12489                    return number;
12490            }
12491        },
12492        meridiemParse: /오전|오후/,
12493        isPM: function (token) {
12494            return token === '오후';
12495        },
12496        meridiem: function (hour, minute, isUpper) {
12497            return hour < 12 ? '오전' : '오후';
12498        },
12499    });
12500
12501    //! moment.js locale configuration
12502
12503    var symbolMap$b = {
12504            1: 'Ù¡',
12505            2: 'Ù¢',
12506            3: 'Ù£',
12507            4: 'Ù¤',
12508            5: 'Ù¥',
12509            6: 'Ù¦',
12510            7: 'Ù§',
12511            8: 'Ù¨',
12512            9: 'Ù©',
12513            0: 'Ù ',
12514        },
12515        numberMap$a = {
12516            'Ù¡': '1',
12517            'Ù¢': '2',
12518            'Ù£': '3',
12519            'Ù¤': '4',
12520            'Ù¥': '5',
12521            'Ù¦': '6',
12522            'Ù§': '7',
12523            'Ù¨': '8',
12524            'Ù©': '9',
12525            'Ù ': '0',
12526        },
12527        months$8 = [
12528            'کانونی دووەم',
12529            'شوبات',
12530            'ئازار',
12531            'نیسان',
12532            'ئایار',
12533            'حوزەیران',
12534            'تەمموز',
12535            'ئاب',
12536            'ئەیلوول',
12537            'تشرینی یەكەم',
12538            'تشرینی دووەم',
12539            'كانونی یەکەم',
12540        ];
12541
12542    hooks.defineLocale('ku', {
12543        months: months$8,
12544        monthsShort: months$8,
12545        weekdays:
12546            'یه‌كشه‌ممه‌_دووشه‌ممه‌_سێشه‌ممه‌_چوارشه‌ممه‌_پێنجشه‌ممه‌_هه‌ینی_شه‌ممه‌'.split(
12547                '_'
12548            ),
12549        weekdaysShort:
12550            'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه‌'.split('_'),
12551        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),
12552        weekdaysParseExact: true,
12553        longDateFormat: {
12554            LT: 'HH:mm',
12555            LTS: 'HH:mm:ss',
12556            L: 'DD/MM/YYYY',
12557            LL: 'D MMMM YYYY',
12558            LLL: 'D MMMM YYYY HH:mm',
12559            LLLL: 'dddd, D MMMM YYYY HH:mm',
12560        },
12561        meridiemParse: /ئێواره‌|به‌یانی/,
12562        isPM: function (input) {
12563            return /ئێواره‌/.test(input);
12564        },
12565        meridiem: function (hour, minute, isLower) {
12566            if (hour < 12) {
12567                return 'به‌یانی';
12568            } else {
12569                return 'ئێواره‌';
12570            }
12571        },
12572        calendar: {
12573            sameDay: '[ئه‌مرۆ كاتژمێر] LT',
12574            nextDay: '[به‌یانی كاتژمێر] LT',
12575            nextWeek: 'dddd [كاتژمێر] LT',
12576            lastDay: '[دوێنێ كاتژمێر] LT',
12577            lastWeek: 'dddd [كاتژمێر] LT',
12578            sameElse: 'L',
12579        },
12580        relativeTime: {
12581            future: 'له‌ %s',
12582            past: '%s',
12583            s: 'چه‌ند چركه‌یه‌ك',
12584            ss: 'چركه‌ %d',
12585            m: 'یه‌ك خوله‌ك',
12586            mm: '%d خوله‌ك',
12587            h: 'یه‌ك كاتژمێر',
12588            hh: '%d كاتژمێر',
12589            d: 'یه‌ك ڕۆژ',
12590            dd: '%d ڕۆژ',
12591            M: 'یه‌ك مانگ',
12592            MM: '%d مانگ',
12593            y: 'یه‌ك ساڵ',
12594            yy: '%d ساڵ',
12595        },
12596        preparse: function (string) {
12597            return string
12598                .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
12599                    return numberMap$a[match];
12600                })
12601                .replace(/،/g, ',');
12602        },
12603        postformat: function (string) {
12604            return string
12605                .replace(/\d/g, function (match) {
12606                    return symbolMap$b[match];
12607                })
12608                .replace(/,/g, '،');
12609        },
12610        week: {
12611            dow: 6, // Saturday is the first day of the week.
12612            doy: 12, // The week that contains Jan 12th is the first week of the year.
12613        },
12614    });
12615
12616    //! moment.js locale configuration
12617
12618    var suffixes$2 = {
12619        0: '-чү',
12620        1: '-чи',
12621        2: '-чи',
12622        3: '-чү',
12623        4: '-чү',
12624        5: '-чи',
12625        6: '-чы',
12626        7: '-чи',
12627        8: '-чи',
12628        9: '-чу',
12629        10: '-чу',
12630        20: '-чы',
12631        30: '-чу',
12632        40: '-чы',
12633        50: '-чү',
12634        60: '-чы',
12635        70: '-чи',
12636        80: '-чи',
12637        90: '-чу',
12638        100: '-чү',
12639    };
12640
12641    hooks.defineLocale('ky', {
12642        months: 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
12643            '_'
12644        ),
12645        monthsShort: 'янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split(
12646            '_'
12647        ),
12648        weekdays: 'Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби'.split(
12649            '_'
12650        ),
12651        weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Жум_Ише'.split('_'),
12652        weekdaysMin: 'Жк_Дй_Шй_Шр_Бй_Жм_Иш'.split('_'),
12653        longDateFormat: {
12654            LT: 'HH:mm',
12655            LTS: 'HH:mm:ss',
12656            L: 'DD.MM.YYYY',
12657            LL: 'D MMMM YYYY',
12658            LLL: 'D MMMM YYYY HH:mm',
12659            LLLL: 'dddd, D MMMM YYYY HH:mm',
12660        },
12661        calendar: {
12662            sameDay: '[Бүгүн саат] LT',
12663            nextDay: '[Эртең саат] LT',
12664            nextWeek: 'dddd [саат] LT',
12665            lastDay: '[Кечээ саат] LT',
12666            lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',
12667            sameElse: 'L',
12668        },
12669        relativeTime: {
12670            future: '%s ичинде',
12671            past: '%s мурун',
12672            s: 'бирнече секунд',
12673            ss: '%d секунд',
12674            m: 'бир мүнөт',
12675            mm: '%d мүнөт',
12676            h: 'бир саат',
12677            hh: '%d саат',
12678            d: 'бир күн',
12679            dd: '%d күн',
12680            M: 'бир ай',
12681            MM: '%d ай',
12682            y: 'бир жыл',
12683            yy: '%d жыл',
12684        },
12685        dayOfMonthOrdinalParse: /\d{1,2}-(чи|чы|чү|чу)/,
12686        ordinal: function (number) {
12687            var a = number % 10,
12688                b = number >= 100 ? 100 : null;
12689            return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);
12690        },
12691        week: {
12692            dow: 1, // Monday is the first day of the week.
12693            doy: 7, // The week that contains Jan 7th is the first week of the year.
12694        },
12695    });
12696
12697    //! moment.js locale configuration
12698
12699    function processRelativeTime$6(number, withoutSuffix, key, isFuture) {
12700        var format = {
12701            m: ['eng Minutt', 'enger Minutt'],
12702            h: ['eng Stonn', 'enger Stonn'],
12703            d: ['een Dag', 'engem Dag'],
12704            M: ['ee Mount', 'engem Mount'],
12705            y: ['ee Joer', 'engem Joer'],
12706        };
12707        return withoutSuffix ? format[key][0] : format[key][1];
12708    }
12709    function processFutureTime(string) {
12710        var number = string.substr(0, string.indexOf(' '));
12711        if (eifelerRegelAppliesToNumber(number)) {
12712            return 'a ' + string;
12713        }
12714        return 'an ' + string;
12715    }
12716    function processPastTime(string) {
12717        var number = string.substr(0, string.indexOf(' '));
12718        if (eifelerRegelAppliesToNumber(number)) {
12719            return 'viru ' + string;
12720        }
12721        return 'virun ' + string;
12722    }
12723    /**
12724     * Returns true if the word before the given number loses the '-n' ending.
12725     * e.g. 'an 10 Deeg' but 'a 5 Deeg'
12726     *
12727     * @param number {integer}
12728     * @returns {boolean}
12729     */
12730    function eifelerRegelAppliesToNumber(number) {
12731        number = parseInt(number, 10);
12732        if (isNaN(number)) {
12733            return false;
12734        }
12735        if (number < 0) {
12736            // Negative Number --> always true
12737            return true;
12738        } else if (number < 10) {
12739            // Only 1 digit
12740            if (4 <= number && number <= 7) {
12741                return true;
12742            }
12743            return false;
12744        } else if (number < 100) {
12745            // 2 digits
12746            var lastDigit = number % 10,
12747                firstDigit = number / 10;
12748            if (lastDigit === 0) {
12749                return eifelerRegelAppliesToNumber(firstDigit);
12750            }
12751            return eifelerRegelAppliesToNumber(lastDigit);
12752        } else if (number < 10000) {
12753            // 3 or 4 digits --> recursively check first digit
12754            while (number >= 10) {
12755                number = number / 10;
12756            }
12757            return eifelerRegelAppliesToNumber(number);
12758        } else {
12759            // Anything larger than 4 digits: recursively check first n-3 digits
12760            number = number / 1000;
12761            return eifelerRegelAppliesToNumber(number);
12762        }
12763    }
12764
12765    hooks.defineLocale('lb', {
12766        months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
12767            '_'
12768        ),
12769        monthsShort:
12770            'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
12771                '_'
12772            ),
12773        monthsParseExact: true,
12774        weekdays:
12775            'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
12776                '_'
12777            ),
12778        weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
12779        weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
12780        weekdaysParseExact: true,
12781        longDateFormat: {
12782            LT: 'H:mm [Auer]',
12783            LTS: 'H:mm:ss [Auer]',
12784            L: 'DD.MM.YYYY',
12785            LL: 'D. MMMM YYYY',
12786            LLL: 'D. MMMM YYYY H:mm [Auer]',
12787            LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
12788        },
12789        calendar: {
12790            sameDay: '[Haut um] LT',
12791            sameElse: 'L',
12792            nextDay: '[Muer um] LT',
12793            nextWeek: 'dddd [um] LT',
12794            lastDay: '[Gëschter um] LT',
12795            lastWeek: function () {
12796                // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
12797                switch (this.day()) {
12798                    case 2:
12799                    case 4:
12800                        return '[Leschten] dddd [um] LT';
12801                    default:
12802                        return '[Leschte] dddd [um] LT';
12803                }
12804            },
12805        },
12806        relativeTime: {
12807            future: processFutureTime,
12808            past: processPastTime,
12809            s: 'e puer Sekonnen',
12810            ss: '%d Sekonnen',
12811            m: processRelativeTime$6,
12812            mm: '%d Minutten',
12813            h: processRelativeTime$6,
12814            hh: '%d Stonnen',
12815            d: processRelativeTime$6,
12816            dd: '%d Deeg',
12817            M: processRelativeTime$6,
12818            MM: '%d Méint',
12819            y: processRelativeTime$6,
12820            yy: '%d Joer',
12821        },
12822        dayOfMonthOrdinalParse: /\d{1,2}\./,
12823        ordinal: '%d.',
12824        week: {
12825            dow: 1, // Monday is the first day of the week.
12826            doy: 4, // The week that contains Jan 4th is the first week of the year.
12827        },
12828    });
12829
12830    //! moment.js locale configuration
12831
12832    hooks.defineLocale('lo', {
12833        months: 'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12834            '_'
12835        ),
12836        monthsShort:
12837            'ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ'.split(
12838                '_'
12839            ),
12840        weekdays: 'ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12841        weekdaysShort: 'ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ'.split('_'),
12842        weekdaysMin: 'ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ'.split('_'),
12843        weekdaysParseExact: true,
12844        longDateFormat: {
12845            LT: 'HH:mm',
12846            LTS: 'HH:mm:ss',
12847            L: 'DD/MM/YYYY',
12848            LL: 'D MMMM YYYY',
12849            LLL: 'D MMMM YYYY HH:mm',
12850            LLLL: 'ວັນdddd D MMMM YYYY HH:mm',
12851        },
12852        meridiemParse: /ຕອນເຊົ້າ|ຕອນແລງ/,
12853        isPM: function (input) {
12854            return input === 'ຕອນແລງ';
12855        },
12856        meridiem: function (hour, minute, isLower) {
12857            if (hour < 12) {
12858                return 'ຕອນເຊົ້າ';
12859            } else {
12860                return 'ຕອນແລງ';
12861            }
12862        },
12863        calendar: {
12864            sameDay: '[ມື້ນີ້ເວລາ] LT',
12865            nextDay: '[ມື້ອື່ນເວລາ] LT',
12866            nextWeek: '[ວັນ]dddd[ໜ້າເວລາ] LT',
12867            lastDay: '[ມື້ວານນີ້ເວລາ] LT',
12868            lastWeek: '[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT',
12869            sameElse: 'L',
12870        },
12871        relativeTime: {
12872            future: 'ອີກ %s',
12873            past: '%sຜ່ານມາ',
12874            s: 'ບໍ່ເທົ່າໃດວິນາທີ',
12875            ss: '%d ວິນາທີ',
12876            m: '1 ນາທີ',
12877            mm: '%d ນາທີ',
12878            h: '1 ຊົ່ວໂມງ',
12879            hh: '%d ຊົ່ວໂມງ',
12880            d: '1 ມື້',
12881            dd: '%d ມື້',
12882            M: '1 ເດືອນ',
12883            MM: '%d ເດືອນ',
12884            y: '1 ປີ',
12885            yy: '%d ປີ',
12886        },
12887        dayOfMonthOrdinalParse: /(ທີ່)\d{1,2}/,
12888        ordinal: function (number) {
12889            return 'ທີ່' + number;
12890        },
12891    });
12892
12893    //! moment.js locale configuration
12894
12895    var units = {
12896        ss: 'sekundė_sekundžių_sekundes',
12897        m: 'minutė_minutės_minutę',
12898        mm: 'minutės_minučių_minutes',
12899        h: 'valanda_valandos_valandą',
12900        hh: 'valandos_valandų_valandas',
vendor: 4,454 bytes, lines 12901-13022
12901        d: 'diena_dienos_dieną',
12902        dd: 'dienos_dienų_dienas',
12903        M: 'mėnuo_mėnesio_mėnesį',
12904        MM: 'mėnesiai_mėnesių_mėnesius',
12905        y: 'metai_metų_metus',
12906        yy: 'metai_metų_metus',
12907    };
12908    function translateSeconds(number, withoutSuffix, key, isFuture) {
12909        if (withoutSuffix) {
12910            return 'kelios sekundės';
12911        } else {
12912            return isFuture ? 'kelių sekundžių' : 'kelias sekundes';
12913        }
12914    }
12915    function translateSingular(number, withoutSuffix, key, isFuture) {
12916        return withoutSuffix
12917            ? forms(key)[0]
12918            : isFuture
12919            ? forms(key)[1]
12920            : forms(key)[2];
12921    }
12922    function special(number) {
12923        return number % 10 === 0 || (number > 10 && number < 20);
12924    }
12925    function forms(key) {
12926        return units[key].split('_');
12927    }
12928    function translate$6(number, withoutSuffix, key, isFuture) {
12929        var result = number + ' ';
12930        if (number === 1) {
12931            return (
12932                result + translateSingular(number, withoutSuffix, key[0], isFuture)
12933            );
12934        } else if (withoutSuffix) {
12935            return result + (special(number) ? forms(key)[1] : forms(key)[0]);
12936        } else {
12937            if (isFuture) {
12938                return result + forms(key)[1];
12939            } else {
12940                return result + (special(number) ? forms(key)[1] : forms(key)[2]);
12941            }
12942        }
12943    }
12944    hooks.defineLocale('lt', {
12945        months: {
12946            format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(
12947                '_'
12948            ),
12949            standalone:
12950                'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis'.split(
12951                    '_'
12952                ),
12953            isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/,
12954        },
12955        monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),
12956        weekdays: {
12957            format: 'sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį'.split(
12958                '_'
12959            ),
12960            standalone:
12961                'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis'.split(
12962                    '_'
12963                ),
12964            isFormat: /dddd HH:mm/,
12965        },
12966        weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Šeš'.split('_'),
12967        weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),
12968        weekdaysParseExact: true,
12969        longDateFormat: {
12970            LT: 'HH:mm',
12971            LTS: 'HH:mm:ss',
12972            L: 'YYYY-MM-DD',
12973            LL: 'YYYY [m.] MMMM D [d.]',
12974            LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12975            LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',
12976            l: 'YYYY-MM-DD',
12977            ll: 'YYYY [m.] MMMM D [d.]',
12978            lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',
12979            llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',
12980        },
12981        calendar: {
12982            sameDay: '[Å iandien] LT',
12983            nextDay: '[Rytoj] LT',
12984            nextWeek: 'dddd LT',
12985            lastDay: '[Vakar] LT',
12986            lastWeek: '[Praėjusį] dddd LT',
12987            sameElse: 'L',
12988        },
12989        relativeTime: {
12990            future: 'po %s',
12991            past: 'prieš %s',
12992            s: translateSeconds,
12993            ss: translate$6,
12994            m: translateSingular,
12995            mm: translate$6,
12996            h: translateSingular,
12997            hh: translate$6,
12998            d: translateSingular,
12999            dd: translate$6,
13000            M: translateSingular,
13001            MM: translate$6,
13002            y: translateSingular,
13003            yy: translate$6,
13004        },
13005        dayOfMonthOrdinalParse: /\d{1,2}-oji/,
13006        ordinal: function (number) {
13007            return number + '-oji';
13008        },
13009        week: {
13010            dow: 1, // Monday is the first day of the week.
13011            doy: 4, // The week that contains Jan 4th is the first week of the year.
13012        },
13013    });
13014
13015    //! moment.js locale configuration
13016
13017    var units$1 = {
13018        ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),
13019        m: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
13020        mm: 'minūtes_minūtēm_minūte_minūtes'.split('_'),
13021        h: 'stundas_stundām_stunda_stundas'.split('_'),
13022        hh: 'stundas_stundām_stunda_stundas'.split('_'),
13023        d: 'dienas_dienām_diena_dienas'.split('_'),
13024        dd: 'dienas_dienām_diena_dienas'.split('_'),
13025        M: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
13026        MM: 'mēneša_mēnešiem_mēnesis_mēneši'.split('_'),
13027        y: 'gada_gadiem_gads_gadi'.split('_'),
13028        yy: 'gada_gadiem_gads_gadi'.split('_'),
13029    };
13030    /**
13031     * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.
13032     */
13033    function format$1(forms, number, withoutSuffix) {
13034        if (withoutSuffix) {
13035            // E.g. "21 minūte", "3 minūtes".
13036            return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];
13037        } else {
13038            // E.g. "21 minūtes" as in "pēc 21 minūtes".
13039            // E.g. "3 minūtēm" as in "pēc 3 minūtēm".
13040            return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];
13041        }
13042    }
13043    function relativeTimeWithPlural$1(number, withoutSuffix, key) {
13044        return number + ' ' + format$1(units$1[key], number, withoutSuffix);
13045    }
13046    function relativeTimeWithSingular(number, withoutSuffix, key) {
13047        return format$1(units$1[key], number, withoutSuffix);
13048    }
13049    function relativeSeconds(number, withoutSuffix) {
13050        return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';
13051    }
13052
13053    hooks.defineLocale('lv', {
13054        months: 'janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris'.split(
13055            '_'
13056        ),
13057        monthsShort: 'jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec'.split('_'),
13058        weekdays:
13059            'svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena'.split(
13060                '_'
13061            ),
13062        weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),
13063        weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),
13064        weekdaysParseExact: true,
13065        longDateFormat: {
13066            LT: 'HH:mm',
13067            LTS: 'HH:mm:ss',
13068            L: 'DD.MM.YYYY.',
13069            LL: 'YYYY. [gada] D. MMMM',
13070            LLL: 'YYYY. [gada] D. MMMM, HH:mm',
13071            LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',
13072        },
13073        calendar: {
13074            sameDay: '[Å odien pulksten] LT',
13075            nextDay: '[Rīt pulksten] LT',
13076            nextWeek: 'dddd [pulksten] LT',
13077            lastDay: '[Vakar pulksten] LT',
13078            lastWeek: '[Pagājušā] dddd [pulksten] LT',
13079            sameElse: 'L',
13080        },
13081        relativeTime: {
13082            future: 'pēc %s',
13083            past: 'pirms %s',
13084            s: relativeSeconds,
13085            ss: relativeTimeWithPlural$1,
13086            m: relativeTimeWithSingular,
13087            mm: relativeTimeWithPlural$1,
13088            h: relativeTimeWithSingular,
13089            hh: relativeTimeWithPlural$1,
13090            d: relativeTimeWithSingular,
13091            dd: relativeTimeWithPlural$1,
13092            M: relativeTimeWithSingular,
13093            MM: relativeTimeWithPlural$1,
13094            y: relativeTimeWithSingular,
13095            yy: relativeTimeWithPlural$1,
13096        },
13097        dayOfMonthOrdinalParse: /\d{1,2}\./,
13098        ordinal: '%d.',
13099        week: {
13100            dow: 1, // Monday is the first day of the week.
13101            doy: 4, // The week that contains Jan 4th is the first week of the year.
13102        },
13103    });
13104
13105    //! moment.js locale configuration
13106
13107    var translator = {
13108        words: {
13109            //Different grammatical cases
13110            ss: ['sekund', 'sekunda', 'sekundi'],
13111            m: ['jedan minut', 'jednog minuta'],
13112            mm: ['minut', 'minuta', 'minuta'],
13113            h: ['jedan sat', 'jednog sata'],
13114            hh: ['sat', 'sata', 'sati'],
13115            dd: ['dan', 'dana', 'dana'],
13116            MM: ['mjesec', 'mjeseca', 'mjeseci'],
13117            yy: ['godina', 'godine', 'godina'],
13118        },
13119        correctGrammaticalCase: function (number, wordKey) {
13120            return number === 1
13121                ? wordKey[0]
13122                : number >= 2 && number <= 4
13123                ? wordKey[1]
13124                : wordKey[2];
13125        },
13126        translate: function (number, withoutSuffix, key) {
13127            var wordKey = translator.words[key];
13128            if (key.length === 1) {
13129                return withoutSuffix ? wordKey[0] : wordKey[1];
13130            } else {
13131                return (
13132                    number +
13133                    ' ' +
13134                    translator.correctGrammaticalCase(number, wordKey)
13135                );
13136            }
13137        },
13138    };
13139
13140    hooks.defineLocale('me', {
13141        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
13142            '_'
13143        ),
13144        monthsShort:
13145            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
13146        monthsParseExact: true,
13147        weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(
13148            '_'
13149        ),
13150        weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),
13151        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
13152        weekdaysParseExact: true,
13153        longDateFormat: {
13154            LT: 'H:mm',
13155            LTS: 'H:mm:ss',
13156            L: 'DD.MM.YYYY',
13157            LL: 'D. MMMM YYYY',
13158            LLL: 'D. MMMM YYYY H:mm',
13159            LLLL: 'dddd, D. MMMM YYYY H:mm',
13160        },
13161        calendar: {
13162            sameDay: '[danas u] LT',
13163            nextDay: '[sjutra u] LT',
13164
13165            nextWeek: function () {
13166                switch (this.day()) {
13167                    case 0:
13168                        return '[u] [nedjelju] [u] LT';
13169                    case 3:
13170                        return '[u] [srijedu] [u] LT';
13171                    case 6:
13172                        return '[u] [subotu] [u] LT';
13173                    case 1:
13174                    case 2:
13175                    case 4:
13176                    case 5:
13177                        return '[u] dddd [u] LT';
13178                }
13179            },
13180            lastDay: '[juče u] LT',
13181            lastWeek: function () {
13182                var lastWeekDays = [
13183                    '[prošle] [nedjelje] [u] LT',
13184                    '[prošlog] [ponedjeljka] [u] LT',
13185                    '[prošlog] [utorka] [u] LT',
13186                    '[prošle] [srijede] [u] LT',
13187                    '[prošlog] [četvrtka] [u] LT',
13188                    '[prošlog] [petka] [u] LT',
13189                    '[prošle] [subote] [u] LT',
13190                ];
13191                return lastWeekDays[this.day()];
13192            },
13193            sameElse: 'L',
13194        },
13195        relativeTime: {
13196            future: 'za %s',
13197            past: 'prije %s',
13198            s: 'nekoliko sekundi',
13199            ss: translator.translate,
13200            m: translator.translate,
13201            mm: translator.translate,
13202            h: translator.translate,
13203            hh: translator.translate,
13204            d: 'dan',
13205            dd: translator.translate,
13206            M: 'mjesec',
13207            MM: translator.translate,
13208            y: 'godinu',
13209            yy: translator.translate,
13210        },
13211        dayOfMonthOrdinalParse: /\d{1,2}\./,
13212        ordinal: '%d.',
13213        week: {
13214            dow: 1, // Monday is the first day of the week.
13215            doy: 7, // The week that contains Jan 7th is the first week of the year.
13216        },
13217    });
13218
13219    //! moment.js locale configuration
13220
13221    hooks.defineLocale('mi', {
13222        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(
13223            '_'
13224        ),
13225        monthsShort:
13226            'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(
13227                '_'
13228            ),
13229        monthsRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13230        monthsStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13231        monthsShortRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,3}/i,
13232        monthsShortStrictRegex: /(?:['a-z\u0101\u014D\u016B]+\-?){1,2}/i,
13233        weekdays: 'Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),
13234        weekdaysShort: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13235        weekdaysMin: 'Ta_Ma_Tū_We_Tāi_Pa_Hā'.split('_'),
13236        longDateFormat: {
13237            LT: 'HH:mm',
13238            LTS: 'HH:mm:ss',
13239            L: 'DD/MM/YYYY',
13240            LL: 'D MMMM YYYY',
13241            LLL: 'D MMMM YYYY [i] HH:mm',
13242            LLLL: 'dddd, D MMMM YYYY [i] HH:mm',
13243        },
13244        calendar: {
13245            sameDay: '[i teie mahana, i] LT',
13246            nextDay: '[apopo i] LT',
13247            nextWeek: 'dddd [i] LT',
13248            lastDay: '[inanahi i] LT',
13249            lastWeek: 'dddd [whakamutunga i] LT',
13250            sameElse: 'L',
13251        },
13252        relativeTime: {
13253            future: 'i roto i %s',
13254            past: '%s i mua',
13255            s: 'te hēkona ruarua',
13256            ss: '%d hēkona',
13257            m: 'he meneti',
13258            mm: '%d meneti',
13259            h: 'te haora',
13260            hh: '%d haora',
13261            d: 'he ra',
13262            dd: '%d ra',
13263            M: 'he marama',
13264            MM: '%d marama',
13265            y: 'he tau',
13266            yy: '%d tau',
13267        },
13268        dayOfMonthOrdinalParse: /\d{1,2}º/,
13269        ordinal: '%dº',
13270        week: {
13271            dow: 1, // Monday is the first day of the week.
13272            doy: 4, // The week that contains Jan 4th is the first week of the year.
13273        },
13274    });
13275
13276    //! moment.js locale configuration
13277
13278    hooks.defineLocale('mk', {
13279        months: 'јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември'.split(
13280            '_'
13281        ),
13282        monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек'.split('_'),
13283        weekdays: 'недела_понеделник_вторник_среда_четврток_петок_сабота'.split(
13284            '_'
13285        ),
13286        weekdaysShort: 'нед_пон_вто_сре_чет_пет_саб'.split('_'),
13287        weekdaysMin: 'нe_пo_вт_ср_че_пе_сa'.split('_'),
13288        longDateFormat: {
13289            LT: 'H:mm',
13290            LTS: 'H:mm:ss',
13291            L: 'D.MM.YYYY',
13292            LL: 'D MMMM YYYY',
13293            LLL: 'D MMMM YYYY H:mm',
13294            LLLL: 'dddd, D MMMM YYYY H:mm',
13295        },
13296        calendar: {
13297            sameDay: '[Денес во] LT',
13298            nextDay: '[Утре во] LT',
13299            nextWeek: '[Во] dddd [во] LT',
13300            lastDay: '[Вчера во] LT',
13301            lastWeek: function () {
13302                switch (this.day()) {
13303                    case 0:
13304                    case 3:
13305                    case 6:
13306                        return '[Изминатата] dddd [во] LT';
13307                    case 1:
13308                    case 2:
13309                    case 4:
13310                    case 5:
13311                        return '[Изминатиот] dddd [во] LT';
13312                }
13313            },
13314            sameElse: 'L',
13315        },
13316        relativeTime: {
13317            future: 'за %s',
13318            past: 'пред %s',
13319            s: 'неколку секунди',
13320            ss: '%d секунди',
13321            m: 'една минута',
13322            mm: '%d минути',
13323            h: 'еден час',
13324            hh: '%d часа',
13325            d: 'еден ден',
13326            dd: '%d дена',
13327            M: 'еден месец',
13328            MM: '%d месеци',
13329            y: 'една година',
13330            yy: '%d години',
13331        },
13332        dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
13333        ordinal: function (number) {
13334            var lastDigit = number % 10,
13335                last2Digits = number % 100;
13336            if (number === 0) {
13337                return number + '-ев';
13338            } else if (last2Digits === 0) {
13339                return number + '-ен';
13340            } else if (last2Digits > 10 && last2Digits < 20) {
13341                return number + '-ти';
13342            } else if (lastDigit === 1) {
13343                return number + '-ви';
13344            } else if (lastDigit === 2) {
13345                return number + '-ри';
13346            } else if (lastDigit === 7 || lastDigit === 8) {
13347                return number + '-ми';
13348            } else {
13349                return number + '-ти';
13350            }
13351        },
13352        week: {
13353            dow: 1, // Monday is the first day of the week.
13354            doy: 7, // The week that contains Jan 7th is the first week of the year.
13355        },
13356    });
13357
13358    //! moment.js locale configuration
13359
13360    hooks.defineLocale('ml', {
13361        months: 'ജനുവരി_ഫെബ്രുവരി_മാർച്ചà
vendor: 5,964 bytes, lines 13361-13498
13361µ_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split(
13362            '_'
13363        ),
13364        monthsShort:
13365            'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split(
13366                '_'
13367            ),
13368        monthsParseExact: true,
13369        weekdays:
13370            'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split(
13371                '_'
13372            ),
13373        weekdaysShort: 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split('_'),
13374        weekdaysMin: 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split('_'),
13375        longDateFormat: {
13376            LT: 'A h:mm -നു',
13377            LTS: 'A h:mm:ss -നു',
13378            L: 'DD/MM/YYYY',
13379            LL: 'D MMMM YYYY',
13380            LLL: 'D MMMM YYYY, A h:mm -നു',
13381            LLLL: 'dddd, D MMMM YYYY, A h:mm -നു',
13382        },
13383        calendar: {
13384            sameDay: '[ഇന്ന്] LT',
13385            nextDay: '[നാളെ] LT',
13386            nextWeek: 'dddd, LT',
13387            lastDay: '[ഇന്നലെ] LT',
13388            lastWeek: '[കഴിഞ്ഞ] dddd, LT',
13389            sameElse: 'L',
13390        },
13391        relativeTime: {
13392            future: '%s കഴിഞ്ഞ്',
13393            past: '%s മുൻപ്',
13394            s: 'അൽപ നിമിഷങ്ങൾ',
13395            ss: '%d സെക്കൻഡ്',
13396            m: 'ഒരു മിനിറ്റ്',
13397            mm: '%d മിനിറ്റ്',
13398            h: 'ഒരു മണിക്കൂർ',
13399            hh: '%d മണിക്കൂർ',
13400            d: 'ഒരു ദിവസം',
13401            dd: '%d ദിവസം',
13402            M: 'ഒരു മാസം',
13403            MM: '%d മാസം',
13404            y: 'ഒരു വർഷം',
13405            yy: '%d വർഷം',
13406        },
13407        meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
13408        meridiemHour: function (hour, meridiem) {
13409            if (hour === 12) {
13410                hour = 0;
13411            }
13412            if (
13413                (meridiem === 'രാത്രി' && hour >= 4) ||
13414                meridiem === 'ഉച്ച കഴിഞ്ഞ്' ||
13415                meridiem === 'വൈകുന്നേരം'
13416            ) {
13417                return hour + 12;
13418            } else {
13419                return hour;
13420            }
13421        },
13422        meridiem: function (hour, minute, isLower) {
13423            if (hour < 4) {
13424                return 'രാത്രി';
13425            } else if (hour < 12) {
13426                return 'രാവിലെ';
13427            } else if (hour < 17) {
13428                return 'ഉച്ച കഴിഞ്ഞ്';
13429            } else if (hour < 20) {
13430                return 'വൈകുന്നേരം';
13431            } else {
13432                return 'രാത്രി';
13433            }
13434        },
13435    });
13436
13437    //! moment.js locale configuration
13438
13439    function translate$7(number, withoutSuffix, key, isFuture) {
13440        switch (key) {
13441            case 's':
13442                return withoutSuffix ? 'хэдхэн секунд' : 'хэдхэн секундын';
13443            case 'ss':
13444                return number + (withoutSuffix ? ' секунд' : ' секундын');
13445            case 'm':
13446            case 'mm':
13447                return number + (withoutSuffix ? ' минут' : ' минутын');
13448            case 'h':
13449            case 'hh':
13450                return number + (withoutSuffix ? ' цаг' : ' цагийн');
13451            case 'd':
13452            case 'dd':
13453                return number + (withoutSuffix ? ' өдөр' : ' өдрийн');
13454            case 'M':
13455            case 'MM':
13456                return number + (withoutSuffix ? ' сар' : ' сарын');
13457            case 'y':
13458            case 'yy':
13459                return number + (withoutSuffix ? ' жил' : ' жилийн');
13460            default:
13461                return number;
13462        }
13463    }
13464
13465    hooks.defineLocale('mn', {
13466        months: 'Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар'.split(
13467            '_'
13468        ),
13469        monthsShort:
13470            '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(
13471                '_'
13472            ),
13473        monthsParseExact: true,
13474        weekdays: 'Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба'.split('_'),
13475        weekdaysShort: 'Ням_Дав_Мяг_Лха_Пүр_Баа_Бям'.split('_'),
13476        weekdaysMin: 'Ня_Да_Мя_Лх_Пү_Ба_Бя'.split('_'),
13477        weekdaysParseExact: true,
13478        longDateFormat: {
13479            LT: 'HH:mm',
13480            LTS: 'HH:mm:ss',
13481            L: 'YYYY-MM-DD',
13482            LL: 'YYYY оны MMMMын D',
13483            LLL: 'YYYY оны MMMMын D HH:mm',
13484            LLLL: 'dddd, YYYY оны MMMMын D HH:mm',
13485        },
13486        meridiemParse: /ҮӨ|ҮХ/i,
13487        isPM: function (input) {
13488            return input === 'ҮХ';
13489        },
13490        meridiem: function (hour, minute, isLower) {
13491            if (hour < 12) {
13492                return 'Ò®Ó¨';
13493            } else {
13494                return 'ҮХ';
13495            }
13496        },
13497        calendar: {
13498            sameDay: '[Өнөөдөр] LT',
vendor: 7,396 bytes, lines 13499-13708
13499            nextDay: '[Маргааш] LT',
13500            nextWeek: '[Ирэх] dddd LT',
13501            lastDay: '[Өчигдөр] LT',
13502            lastWeek: '[Өнгөрсөн] dddd LT',
13503            sameElse: 'L',
13504        },
13505        relativeTime: {
13506            future: '%s дараа',
13507            past: '%s өмнө',
13508            s: translate$7,
13509            ss: translate$7,
13510            m: translate$7,
13511            mm: translate$7,
13512            h: translate$7,
13513            hh: translate$7,
13514            d: translate$7,
13515            dd: translate$7,
13516            M: translate$7,
13517            MM: translate$7,
13518            y: translate$7,
13519            yy: translate$7,
13520        },
13521        dayOfMonthOrdinalParse: /\d{1,2} өдөр/,
13522        ordinal: function (number, period) {
13523            switch (period) {
13524                case 'd':
13525                case 'D':
13526                case 'DDD':
13527                    return number + ' өдөр';
13528                default:
13529                    return number;
13530            }
13531        },
13532    });
13533
13534    //! moment.js locale configuration
13535
13536    var symbolMap$c = {
13537            1: '१',
13538            2: '२',
13539            3: '३',
13540            4: '४',
13541            5: '५',
13542            6: '६',
13543            7: '७',
13544            8: '८',
13545            9: '९',
13546            0: '०',
13547        },
13548        numberMap$b = {
13549            '१': '1',
13550            '२': '2',
13551            '३': '3',
13552            '४': '4',
13553            '५': '5',
13554            '६': '6',
13555            '७': '7',
13556            '८': '8',
13557            '९': '9',
13558            '०': '0',
13559        };
13560
13561    function relativeTimeMr(number, withoutSuffix, string, isFuture) {
13562        var output = '';
13563        if (withoutSuffix) {
13564            switch (string) {
13565                case 's':
13566                    output = 'काही सेकंद';
13567                    break;
13568                case 'ss':
13569                    output = '%d सेकंद';
13570                    break;
13571                case 'm':
13572                    output = 'एक मिनिट';
13573                    break;
13574                case 'mm':
13575                    output = '%d मिनिटे';
13576                    break;
13577                case 'h':
13578                    output = 'एक तास';
13579                    break;
13580                case 'hh':
13581                    output = '%d तास';
13582                    break;
13583                case 'd':
13584                    output = 'एक दिवस';
13585                    break;
13586                case 'dd':
13587                    output = '%d दिवस';
13588                    break;
13589                case 'M':
13590                    output = 'एक महिना';
13591                    break;
13592                case 'MM':
13593                    output = '%d महिने';
13594                    break;
13595                case 'y':
13596                    output = 'एक वर्ष';
13597                    break;
13598                case 'yy':
13599                    output = '%d वर्षे';
13600                    break;
13601            }
13602        } else {
13603            switch (string) {
13604                case 's':
13605                    output = 'काही सेकंदां';
13606                    break;
13607                case 'ss':
13608                    output = '%d सेकंदां';
13609                    break;
13610                case 'm':
13611                    output = 'एका मिनिटा';
13612                    break;
13613                case 'mm':
13614                    output = '%d मिनिटां';
13615                    break;
13616                case 'h':
13617                    output = 'एका तासा';
13618                    break;
13619                case 'hh':
13620                    output = '%d तासां';
13621                    break;
13622                case 'd':
13623                    output = 'एका दिवसा';
13624                    break;
13625                case 'dd':
13626                    output = '%d दिवसां';
13627                    break;
13628                case 'M':
13629                    output = 'एका महिन्या';
13630                    break;
13631                case 'MM':
13632                    output = '%d महिन्यां';
13633                    break;
13634                case 'y':
13635                    output = 'एका वर्षा';
13636                    break;
13637                case 'yy':
13638                    output = '%d वर्षां';
13639                    break;
13640            }
13641        }
13642        return output.replace(/%d/i, number);
13643    }
13644
13645    hooks.defineLocale('mr', {
13646        months: 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split(
13647            '_'
13648        ),
13649        monthsShort:
13650            'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split(
13651                '_'
13652            ),
13653        monthsParseExact: true,
13654        weekdays: 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split('_'),
13655        weekdaysShort: 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split('_'),
13656        weekdaysMin: 'र_सो_मं_बु_गु_शु_श'.split('_'),
13657        longDateFormat: {
13658            LT: 'A h:mm वाजता',
13659            LTS: 'A h:mm:ss वाजता',
13660            L: 'DD/MM/YYYY',
13661            LL: 'D MMMM YYYY',
13662            LLL: 'D MMMM YYYY, A h:mm वाजता',
13663            LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',
13664        },
13665        calendar: {
13666            sameDay: '[आज] LT',
13667            nextDay: '[उद्या] LT',
13668            nextWeek: 'dddd, LT',
13669            lastDay: '[काल] LT',
13670            lastWeek: '[मागील] dddd, LT',
13671            sameElse: 'L',
13672        },
13673        relativeTime: {
13674            future: '%sमध्ये',
13675            past: '%sपूर्वी',
13676            s: relativeTimeMr,
13677            ss: relativeTimeMr,
13678            m: relativeTimeMr,
13679            mm: relativeTimeMr,
13680            h: relativeTimeMr,
13681            hh: relativeTimeMr,
13682            d: relativeTimeMr,
13683            dd: relativeTimeMr,
13684            M: relativeTimeMr,
13685            MM: relativeTimeMr,
13686            y: relativeTimeMr,
13687            yy: relativeTimeMr,
13688        },
13689        preparse: function (string) {
13690            return string.replace(/[१२३४५६७८९०]/g, function (match) {
13691                return numberMap$b[match];
13692            });
13693        },
13694        postformat: function (string) {
13695            return string.replace(/\d/g, function (match) {
13696                return symbolMap$c[match];
13697            });
13698        },
13699        meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/,
13700        meridiemHour: function (hour, meridiem) {
13701            if (hour === 12) {
13702                hour = 0;
13703            }
13704            if (meridiem === 'पहाटे' || meridiem === 'सकाळी') {
13705                return hour;
13706            } else if (
13707                meridiem === 'दुपारी' ||
13708                meridiem === 'सायंकाळी' ||
vendor: 6,988 bytes, lines 13709-13914
13709                meridiem === 'रात्री'
13710            ) {
13711                return hour >= 12 ? hour : hour + 12;
13712            }
13713        },
13714        meridiem: function (hour, minute, isLower) {
13715            if (hour >= 0 && hour < 6) {
13716                return 'पहाटे';
13717            } else if (hour < 12) {
13718                return 'सकाळी';
13719            } else if (hour < 17) {
13720                return 'दुपारी';
13721            } else if (hour < 20) {
13722                return 'सायंकाळी';
13723            } else {
13724                return 'रात्री';
13725            }
13726        },
13727        week: {
13728            dow: 0, // Sunday is the first day of the week.
13729            doy: 6, // The week that contains Jan 6th is the first week of the year.
13730        },
13731    });
13732
13733    //! moment.js locale configuration
13734
13735    hooks.defineLocale('ms-my', {
13736        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13737            '_'
13738        ),
13739        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13740        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13741        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13742        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13743        longDateFormat: {
13744            LT: 'HH.mm',
13745            LTS: 'HH.mm.ss',
13746            L: 'DD/MM/YYYY',
13747            LL: 'D MMMM YYYY',
13748            LLL: 'D MMMM YYYY [pukul] HH.mm',
13749            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13750        },
13751        meridiemParse: /pagi|tengahari|petang|malam/,
13752        meridiemHour: function (hour, meridiem) {
13753            if (hour === 12) {
13754                hour = 0;
13755            }
13756            if (meridiem === 'pagi') {
13757                return hour;
13758            } else if (meridiem === 'tengahari') {
13759                return hour >= 11 ? hour : hour + 12;
13760            } else if (meridiem === 'petang' || meridiem === 'malam') {
13761                return hour + 12;
13762            }
13763        },
13764        meridiem: function (hours, minutes, isLower) {
13765            if (hours < 11) {
13766                return 'pagi';
13767            } else if (hours < 15) {
13768                return 'tengahari';
13769            } else if (hours < 19) {
13770                return 'petang';
13771            } else {
13772                return 'malam';
13773            }
13774        },
13775        calendar: {
13776            sameDay: '[Hari ini pukul] LT',
13777            nextDay: '[Esok pukul] LT',
13778            nextWeek: 'dddd [pukul] LT',
13779            lastDay: '[Kelmarin pukul] LT',
13780            lastWeek: 'dddd [lepas pukul] LT',
13781            sameElse: 'L',
13782        },
13783        relativeTime: {
13784            future: 'dalam %s',
13785            past: '%s yang lepas',
13786            s: 'beberapa saat',
13787            ss: '%d saat',
13788            m: 'seminit',
13789            mm: '%d minit',
13790            h: 'sejam',
13791            hh: '%d jam',
13792            d: 'sehari',
13793            dd: '%d hari',
13794            M: 'sebulan',
13795            MM: '%d bulan',
13796            y: 'setahun',
13797            yy: '%d tahun',
13798        },
13799        week: {
13800            dow: 1, // Monday is the first day of the week.
13801            doy: 7, // The week that contains Jan 7th is the first week of the year.
13802        },
13803    });
13804
13805    //! moment.js locale configuration
13806
13807    hooks.defineLocale('ms', {
13808        months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(
13809            '_'
13810        ),
13811        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),
13812        weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),
13813        weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),
13814        weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),
13815        longDateFormat: {
13816            LT: 'HH.mm',
13817            LTS: 'HH.mm.ss',
13818            L: 'DD/MM/YYYY',
13819            LL: 'D MMMM YYYY',
13820            LLL: 'D MMMM YYYY [pukul] HH.mm',
13821            LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',
13822        },
13823        meridiemParse: /pagi|tengahari|petang|malam/,
13824        meridiemHour: function (hour, meridiem) {
13825            if (hour === 12) {
13826                hour = 0;
13827            }
13828            if (meridiem === 'pagi') {
13829                return hour;
13830            } else if (meridiem === 'tengahari') {
13831                return hour >= 11 ? hour : hour + 12;
13832            } else if (meridiem === 'petang' || meridiem === 'malam') {
13833                return hour + 12;
13834            }
13835        },
13836        meridiem: function (hours, minutes, isLower) {
13837            if (hours < 11) {
13838                return 'pagi';
13839            } else if (hours < 15) {
13840                return 'tengahari';
13841            } else if (hours < 19) {
13842                return 'petang';
13843            } else {
13844                return 'malam';
13845            }
13846        },
13847        calendar: {
13848            sameDay: '[Hari ini pukul] LT',
13849            nextDay: '[Esok pukul] LT',
13850            nextWeek: 'dddd [pukul] LT',
13851            lastDay: '[Kelmarin pukul] LT',
13852            lastWeek: 'dddd [lepas pukul] LT',
13853            sameElse: 'L',
13854        },
13855        relativeTime: {
13856            future: 'dalam %s',
13857            past: '%s yang lepas',
13858            s: 'beberapa saat',
13859            ss: '%d saat',
13860            m: 'seminit',
13861            mm: '%d minit',
13862            h: 'sejam',
13863            hh: '%d jam',
13864            d: 'sehari',
13865            dd: '%d hari',
13866            M: 'sebulan',
13867            MM: '%d bulan',
13868            y: 'setahun',
13869            yy: '%d tahun',
13870        },
13871        week: {
13872            dow: 1, // Monday is the first day of the week.
13873            doy: 7, // The week that contains Jan 7th is the first week of the year.
13874        },
13875    });
13876
13877    //! moment.js locale configuration
13878
13879    hooks.defineLocale('mt', {
13880        months: 'Jannar_Frar_Marzu_April_Mejju_Ġunju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(
13881            '_'
13882        ),
13883        monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ġun_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),
13884        weekdays:
13885            'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ġimgħa_Is-Sibt'.split(
13886                '_'
13887            ),
13888        weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ġim_Sib'.split('_'),
13889        weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ġi_Si'.split('_'),
13890        longDateFormat: {
13891            LT: 'HH:mm',
13892            LTS: 'HH:mm:ss',
13893            L: 'DD/MM/YYYY',
13894            LL: 'D MMMM YYYY',
13895            LLL: 'D MMMM YYYY HH:mm',
13896            LLLL: 'dddd, D MMMM YYYY HH:mm',
13897        },
13898        calendar: {
13899            sameDay: '[Illum fil-]LT',
13900            nextDay: '[Għada fil-]LT',
13901            nextWeek: 'dddd [fil-]LT',
13902            lastDay: '[Il-bieraħ fil-]LT',
13903            lastWeek: 'dddd [li għadda] [fil-]LT',
13904            sameElse: 'L',
13905        },
13906        relativeTime: {
13907            future: 'f’ %s',
13908            past: '%s ilu',
13909            s: 'ftit sekondi',
13910            ss: '%d sekondi',
13911            m: 'minuta',
13912            mm: '%d minuti',
13913            h: 'siegħa',
13914            hh: '%d siegħat',
13915            d: 'ġurnata',
13916            dd: '%d ġranet',
13917            M: 'xahar',
13918            MM: '%d xhur',
13919            y: 'sena',
13920            yy: '%d sni',
13921        },
13922        dayOfMonthOrdinalParse: /\d{1,2}º/,
13923        ordinal: '%dº',
13924        week: {
13925            dow: 1, // Monday is the first day of the week.
13926            doy: 4, // The week that contains Jan 4th is the first week of the year.
13927        },
13928    });
13929
13930    //! moment.js locale configuration
13931
13932    var symbolMap$d = {
13933            1: '၁',
13934            2: '၂',
13935            3: '၃',
13936            4: '၄',
13937            5: '၅',
13938            6: '၆',
13939            7: '၇',
13940            8: '၈',
13941            9: '၉',
13942            0: '၀',
13943        },
13944        numberMap$c = {
13945            '၁': '1',
13946            '၂': '2',
13947            '၃': '3',
13948            '၄': '4',
13949            '၅': '5',
13950            '၆': '6',
13951            '၇': '7',
13952            '၈': '8',
13953            '၉': '9',
13954            '၀': '0',
13955        };
13956
13957    hooks.defineLocale('my', {
13958        months: 'ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ'.split(
13959            '_'
13960        ),
13961        monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ'.split('_'),
13962        weekdays: 'တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ'.split(
13963            '_'
13964        ),
13965        weekdaysShort: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13966        weekdaysMin: 'နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ'.split('_'),
13967
13968        longDateFormat: {
13969            LT: 'HH:mm',
13970            LTS: 'HH:mm:ss',
13971            L: 'DD/MM/YYYY',
13972            LL: 'D MMMM YYYY',
13973            LLL: 'D MMMM YYYY HH:mm',
13974            LLLL: 'dddd D MMMM YYYY HH:mm',
13975        },
13976        calendar: {
13977            sameDay: '[ယနေ.] LT [မှာ]',
13978            nextDay: '[မနက်ဖြန်] LT [မှာ]',
13979            nextWeek: 'dddd LT [မှာ]',
13980            lastDay: '[မနေ.က] LT [မှာ]',
13981            lastWeek: '[ပြီးခဲ့သော] dddd LT [မှာ]',
13982            sameElse: 'L',
13983        },
13984        relativeTime: {
13985            future: 'လာမည့် %s မှာ',
13986            past: 'လွန်ခဲ့သော %s က',
13987            s: 'စက္ကန်.အနည်းငယ်',
13988            ss: '%d စက္ကန့်',
13989            m: 'တစ်မိနစ်',
13990            mm: '%d မိနစ်',
13991            h: 'တစ်နာရီ',
13992            hh: '%d နာရီ',
13993            d: 'တစ်ရက်',
13994            dd: '%d ရက်',
13995            M: 'တစ်လ',
13996            MM: '%d လ',
13997            y: 'တစ်နှစ်',
13998            yy: '%d နှစ်',
13999        },
14000        preparse: function (string) {
14001            return string.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function (match) {
14002                return numberMap$c[match];
14003            });
14004        },
14005        postformat: function (string) {
14006            return string.replace(/\d/g, function (match) {
14007                return symbolMap$d[match];
14008            });
14009        },
14010        week: {
14011            dow: 1, // Monday is the first day of the week.
14012            doy: 4, // The week that contains Jan 4th is the first week of the year.
14013        },
14014    });
14015
14016    //! moment.js locale configuration
14017
14018    hooks.defineLocale('nb', {
14019        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
14020            '_'
14021        ),
14022        monthsShort:
14023            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
14024        monthsParseExact: true,
14025        weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),
14026        weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),
14027        weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),
14028        weekdaysParseExact: true,
14029        longDateFormat: {
14030            LT: 'HH:mm',
14031            LTS: 'HH:mm:ss',
14032            L: 'DD.MM.YYYY',
14033            LL: 'D. MMMM YYYY',
14034            LLL: 'D. MMMM YYYY [kl.] HH:mm',
14035            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
14036        },
14037        calendar: {
14038            sameDay: '[i dag kl.] LT',
14039            nextDay: '[i morgen kl.] LT',
14040            nextWeek: 'dddd [kl.] LT',
14041            lastDay: '[i går kl.] LT',
14042            lastWeek: '[forrige] dddd [kl.] LT',
14043            sameElse: 'L',
14044        },
14045        relativeTime: {
14046            future: 'om %s',
14047            past: '%s siden',
14048            s: 'noen sekunder',
14049            ss: '%d sekunder',
14050            m: 'ett minutt',
14051            mm: '%d minutter',
14052            h: 'en time',
14053            hh: '%d timer',
14054            d: 'en dag',
14055            dd: '%d dager',
14056            w: 'en uke',
14057            ww: '%d uker',
14058            M: 'en måned',
14059            MM: '%d måneder',
14060            y: 'ett år',
14061            yy: '%d år',
14062        },
14063        dayOfMonthOrdinalParse: /\d{1,2}\./,
14064        ordinal: '%d.',
14065        week: {
14066            dow: 1, // Monday is the first day of the week.
14067            doy: 4, // The week that contains Jan 4th is the first week of the year.
14068        },
14069    });
14070
14071    //! moment.js locale configuration
14072
14073    var symbolMap$e = {
14074            1: '१',
14075            2: '२',
14076            3: '३',
14077            4: '४',
14078            5: '५',
14079            6: '६',
14080            7: '७',
14081            8: '८',
14082            9: '९',
14083            0: '०',
14084        },
14085        numberMap$d = {
14086            '१': '1',
14087            '२': '2',
14088            '३': '3',
14089            '४': '4',
14090            '५': '5',
14091            '६': '6',
14092            '७': '7',
14093            '८': '8',
14094            '९': '9',
14095            '०': '0',
14096        };
14097
14098    hooks.defineLocale('ne', {
14099        months: 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split(
14100            '_'
14101        ),
14102        monthsShort:
14103            'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split(
14104                '_'
14105            ),
14106        monthsParseExact: true,
14107        weekdays: 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split(
14108            '_'
14109        ),
14110        weekdaysShort: 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split('_'),
14111        weekdaysMin: 'आ._सो._मं._बु._बि._शु._श.'.split('_'),
14112        weekdaysParseExact: true,
14113        longDateFormat: {
14114            LT: 'Aको h:mm बजे',
14115            LTS: 'Aको h:mm:ss बजे',
14116            L: 'DD/MM/YYYY',
14117            LL: 'D MMMM YYYY',
14118            LLL: 'D MMMM YYYY, Aको h:mm बजे',
14119            LLLL: 'dddd, D MMMM YYYY, Aको h:mm बजे',
14120        },
14121        preparse: function (string) {
14122            return string.replace(/[१२३४५६७८९०]/g, function (match) {
14123                return numberMap$d[match];
14124            });
14125        },
14126        postformat: function (string) {
14127            return string.replace(/\d/g, function (match) {
14128                return symbolMap$e[match];
14129            });
14130        },
vendor: 4,970 bytes, lines 14131-14270
14131        meridiemParse: /राति|बिहान|दिउँसो|साँझ/,
14132        meridiemHour: function (hour, meridiem) {
14133            if (hour === 12) {
14134                hour = 0;
14135            }
14136            if (meridiem === 'राति') {
14137                return hour < 4 ? hour : hour + 12;
14138            } else if (meridiem === 'बिहान') {
14139                return hour;
14140            } else if (meridiem === 'दिउँसो') {
14141                return hour >= 10 ? hour : hour + 12;
14142            } else if (meridiem === 'साँझ') {
14143                return hour + 12;
14144            }
14145        },
14146        meridiem: function (hour, minute, isLower) {
14147            if (hour < 3) {
14148                return 'राति';
14149            } else if (hour < 12) {
14150                return 'बिहान';
14151            } else if (hour < 16) {
14152                return 'दिउँसो';
14153            } else if (hour < 20) {
14154                return 'साँझ';
14155            } else {
14156                return 'राति';
14157            }
14158        },
14159        calendar: {
14160            sameDay: '[आज] LT',
14161            nextDay: '[भोलि] LT',
14162            nextWeek: '[आउँदो] dddd[,] LT',
14163            lastDay: '[हिजो] LT',
14164            lastWeek: '[गएको] dddd[,] LT',
14165            sameElse: 'L',
14166        },
14167        relativeTime: {
14168            future: '%sमा',
14169            past: '%s अगाडि',
14170            s: 'केही क्षण',
14171            ss: '%d सेकेण्ड',
14172            m: 'एक मिनेट',
14173            mm: '%d मिनेट',
14174            h: 'एक घण्टा',
14175            hh: '%d घण्टा',
14176            d: 'एक दिन',
14177            dd: '%d दिन',
14178            M: 'एक महिना',
14179            MM: '%d महिना',
14180            y: 'एक बर्ष',
14181            yy: '%d बर्ष',
14182        },
14183        week: {
14184            dow: 0, // Sunday is the first day of the week.
14185            doy: 6, // The week that contains Jan 6th is the first week of the year.
14186        },
14187    });
14188
14189    //! moment.js locale configuration
14190
14191    var monthsShortWithDots$1 =
14192            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
14193        monthsShortWithoutDots$1 =
14194            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
14195        monthsParse$8 = [
14196            /^jan/i,
14197            /^feb/i,
14198            /^maart|mrt.?$/i,
14199            /^apr/i,
14200            /^mei$/i,
14201            /^jun[i.]?$/i,
14202            /^jul[i.]?$/i,
14203            /^aug/i,
14204            /^sep/i,
14205            /^okt/i,
14206            /^nov/i,
14207            /^dec/i,
14208        ],
14209        monthsRegex$8 =
14210            /^(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;
14211
14212    hooks.defineLocale('nl-be', {
14213        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14214            '_'
14215        ),
14216        monthsShort: function (m, format) {
14217            if (!m) {
14218                return monthsShortWithDots$1;
14219            } else if (/-MMM-/.test(format)) {
14220                return monthsShortWithoutDots$1[m.month()];
14221            } else {
14222                return monthsShortWithDots$1[m.month()];
14223            }
14224        },
14225
14226        monthsRegex: monthsRegex$8,
14227        monthsShortRegex: monthsRegex$8,
14228        monthsStrictRegex:
14229            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14230        monthsShortStrictRegex:
14231            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14232
14233        monthsParse: monthsParse$8,
14234        longMonthsParse: monthsParse$8,
14235        shortMonthsParse: monthsParse$8,
14236
14237        weekdays:
14238            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
14239        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14240        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14241        weekdaysParseExact: true,
14242        longDateFormat: {
14243            LT: 'HH:mm',
14244            LTS: 'HH:mm:ss',
14245            L: 'DD/MM/YYYY',
14246            LL: 'D MMMM YYYY',
14247            LLL: 'D MMMM YYYY HH:mm',
14248            LLLL: 'dddd D MMMM YYYY HH:mm',
14249        },
14250        calendar: {
14251            sameDay: '[vandaag om] LT',
14252            nextDay: '[morgen om] LT',
14253            nextWeek: 'dddd [om] LT',
14254            lastDay: '[gisteren om] LT',
14255            lastWeek: '[afgelopen] dddd [om] LT',
14256            sameElse: 'L',
14257        },
14258        relativeTime: {
14259            future: 'over %s',
14260            past: '%s geleden',
14261            s: 'een paar seconden',
14262            ss: '%d seconden',
14263            m: 'één minuut',
14264            mm: '%d minuten',
14265            h: 'één uur',
14266            hh: '%d uur',
14267            d: 'één dag',
14268            dd: '%d dagen',
14269            M: 'één maand',
14270            MM: '%d maanden',
vendor: 4,329 bytes, lines 14271-14396
14271            y: 'één jaar',
14272            yy: '%d jaar',
14273        },
14274        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14275        ordinal: function (number) {
14276            return (
14277                number +
14278                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14279            );
14280        },
14281        week: {
14282            dow: 1, // Monday is the first day of the week.
14283            doy: 4, // The week that contains Jan 4th is the first week of the year.
14284        },
14285    });
14286
14287    //! moment.js locale configuration
14288
14289    var monthsShortWithDots$2 =
14290            'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),
14291        monthsShortWithoutDots$2 =
14292            'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_'),
14293        monthsParse$9 = [
14294            /^jan/i,
14295            /^feb/i,
14296            /^maart|mrt.?$/i,
14297            /^apr/i,
14298            /^mei$/i,
14299            /^jun[i.]?$/i,
14300            /^jul[i.]?$/i,
14301            /^aug/i,
14302            /^sep/i,
14303            /^okt/i,
14304            /^nov/i,
14305            /^dec/i,
14306        ],
14307        monthsRegex$9 =
14308            /^(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;
14309
14310    hooks.defineLocale('nl', {
14311        months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(
14312            '_'
14313        ),
14314        monthsShort: function (m, format) {
14315            if (!m) {
14316                return monthsShortWithDots$2;
14317            } else if (/-MMM-/.test(format)) {
14318                return monthsShortWithoutDots$2[m.month()];
14319            } else {
14320                return monthsShortWithDots$2[m.month()];
14321            }
14322        },
14323
14324        monthsRegex: monthsRegex$9,
14325        monthsShortRegex: monthsRegex$9,
14326        monthsStrictRegex:
14327            /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,
14328        monthsShortStrictRegex:
14329            /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i,
14330
14331        monthsParse: monthsParse$9,
14332        longMonthsParse: monthsParse$9,
14333        shortMonthsParse: monthsParse$9,
14334
14335        weekdays:
14336            'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),
14337        weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),
14338        weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),
14339        weekdaysParseExact: true,
14340        longDateFormat: {
14341            LT: 'HH:mm',
14342            LTS: 'HH:mm:ss',
14343            L: 'DD-MM-YYYY',
14344            LL: 'D MMMM YYYY',
14345            LLL: 'D MMMM YYYY HH:mm',
14346            LLLL: 'dddd D MMMM YYYY HH:mm',
14347        },
14348        calendar: {
14349            sameDay: '[vandaag om] LT',
14350            nextDay: '[morgen om] LT',
14351            nextWeek: 'dddd [om] LT',
14352            lastDay: '[gisteren om] LT',
14353            lastWeek: '[afgelopen] dddd [om] LT',
14354            sameElse: 'L',
14355        },
14356        relativeTime: {
14357            future: 'over %s',
14358            past: '%s geleden',
14359            s: 'een paar seconden',
14360            ss: '%d seconden',
14361            m: 'één minuut',
14362            mm: '%d minuten',
14363            h: 'één uur',
14364            hh: '%d uur',
14365            d: 'één dag',
14366            dd: '%d dagen',
14367            w: 'één week',
14368            ww: '%d weken',
14369            M: 'één maand',
14370            MM: '%d maanden',
14371            y: 'één jaar',
14372            yy: '%d jaar',
14373        },
14374        dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/,
14375        ordinal: function (number) {
14376            return (
14377                number +
14378                (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')
14379            );
14380        },
14381        week: {
14382            dow: 1, // Monday is the first day of the week.
14383            doy: 4, // The week that contains Jan 4th is the first week of the year.
14384        },
14385    });
14386
14387    //! moment.js locale configuration
14388
14389    hooks.defineLocale('nn', {
14390        months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(
14391            '_'
14392        ),
14393        monthsShort:
14394            'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),
14395        monthsParseExact: true,
14396        weekdays: 'sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),
14397        weekdaysShort: 'su._må._ty._on._to._fr._lau.'.split('_'),
14398        weekdaysMin: 'su_må_ty_on_to_fr_la'.split('_'),
14399        weekdaysParseExact: true,
14400        longDateFormat: {
14401            LT: 'HH:mm',
14402            LTS: 'HH:mm:ss',
14403            L: 'DD.MM.YYYY',
14404            LL: 'D. MMMM YYYY',
14405            LLL: 'D. MMMM YYYY [kl.] H:mm',
14406            LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',
14407        },
14408        calendar: {
14409            sameDay: '[I dag klokka] LT',
14410            nextDay: '[I morgon klokka] LT',
14411            nextWeek: 'dddd [klokka] LT',
14412            lastDay: '[I går klokka] LT',
14413            lastWeek: '[Føregåande] dddd [klokka] LT',
14414            sameElse: 'L',
14415        },
14416        relativeTime: {
14417            future: 'om %s',
14418            past: '%s sidan',
14419            s: 'nokre sekund',
14420            ss: '%d sekund',
14421            m: 'eit minutt',
14422            mm: '%d minutt',
14423            h: 'ein time',
14424            hh: '%d timar',
14425            d: 'ein dag',
14426            dd: '%d dagar',
14427            w: 'ei veke',
14428            ww: '%d veker',
14429            M: 'ein månad',
14430            MM: '%d månader',
14431            y: 'eit år',
14432            yy: '%d år',
14433        },
14434        dayOfMonthOrdinalParse: /\d{1,2}\./,
14435        ordinal: '%d.',
14436        week: {
14437            dow: 1, // Monday is the first day of the week.
14438            doy: 4, // The week that contains Jan 4th is the first week of the year.
14439        },
14440    });
14441
14442    //! moment.js locale configuration
14443
14444    hooks.defineLocale('oc-lnc', {
14445        months: {
14446            standalone:
14447                'genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(
14448                    '_'
14449                ),
14450            format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split(
14451                '_'
14452            ),
14453            isFormat: /D[oD]?(\s)+MMMM/,
14454        },
14455        monthsShort:
14456            'gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(
14457                '_'
14458            ),
14459        monthsParseExact: true,
14460        weekdays: 'dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte'.split(
14461            '_'
14462        ),
14463        weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),
14464        weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),
14465        weekdaysParseExact: true,
14466        longDateFormat: {
14467            LT: 'H:mm',
14468            LTS: 'H:mm:ss',
14469            L: 'DD/MM/YYYY',
14470            LL: 'D MMMM [de] YYYY',
14471            ll: 'D MMM YYYY',
14472            LLL: 'D MMMM [de] YYYY [a] H:mm',
14473            lll: 'D MMM YYYY, H:mm',
14474            LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',
14475            llll: 'ddd D MMM YYYY, H:mm',
14476        },
14477        calendar: {
14478            sameDay: '[uèi a] LT',
14479            nextDay: '[deman a] LT',
14480            nextWeek: 'dddd [a] LT',
14481            lastDay: '[ièr a] LT',
14482            lastWeek: 'dddd [passat a] LT',
14483            sameElse: 'L',
14484        },
14485        relativeTime: {
14486            future: "d'aquí %s",
14487            past: 'fa %s',
14488            s: 'unas segondas',
14489            ss: '%d segondas',
14490            m: 'una minuta',
14491            mm: '%d minutas',
14492            h: 'una ora',
14493            hh: '%d oras',
14494            d: 'un jorn',
14495            dd: '%d jorns',
14496            M: 'un mes',
14497            MM: '%d meses',
14498            y: 'un an',
14499            yy: '%d ans',
14500        },
14501        dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/,
14502        ordinal: function (number, period) {
14503            var output =
14504                number === 1
14505                    ? 'r'
14506                    : number === 2
14507                    ? 'n'
14508                    : number === 3
14509                    ? 'r'
14510                    : number === 4
14511                    ? 't'
14512                    : 'è';
14513            if (period === 'w' || period === 'W') {
14514                output = 'a';
14515            }
14516            return number + output;
14517        },
14518        week: {
14519            dow: 1, // Monday is the first day of the week.
14520            doy: 4,
14521        },
14522    });
14523
14524    //! moment.js locale configuration
14525
14526    var symbolMap$f = {
14527            1: 'à©§',
14528            2: '੨',
14529            3: 'à©©',
14530            4: '੪',
14531            5: 'à©«',
14532            6: '੬',
14533            7: 'à©­',
14534            8: 'à©®',
14535            9: '੯',
14536            0: '੦',
14537        },
14538        numberMap$e = {
14539            'à©§': '1',
14540            '੨': '2',
14541            'à©©': '3',
14542            '੪': '4',
14543            'à©«': '5',
14544            '੬': '6',
14545            'à©­': '7',
14546            'à©®': '8',
14547            '੯': '9',
14548            '੦': '0',
14549        };
14550
14551    hooks.defineLocale('pa-in', {
14552        // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.
14553        months: 'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14554            '_'
14555        ),
14556        monthsShort:
14557            'ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(
14558                '_'
14559            ),
14560        weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ'.split(
14561            '_'
14562        ),
14563        weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14564        weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),
14565        longDateFormat: {
14566            LT: 'A h:mm ਵਜੇ',
14567            LTS: 'A h:mm:ss ਵਜੇ',
14568            L: 'DD/MM/YYYY',
14569            LL: 'D MMMM YYYY',
14570            LLL: 'D MMMM YYYY, A h:mm ਵਜੇ',
14571            LLLL: 'dddd, D MMMM YYYY, A h:mm ਵਜੇ',
14572        },
14573        calendar: {
14574            sameDay: '[ਅਜ] LT',
14575            nextDay: '[ਕਲ] LT',
14576            nextWeek: '[ਅਗਲਾ] dddd, LT',
14577            lastDay: '[ਕਲ] LT',
14578            lastWeek: '[ਪਿਛਲੇ] dddd, LT',
14579            sameElse: 'L',
14580        },
14581        relativeTime: {
14582            future: '%s ਵਿੱਚ',
14583            past: '%s ਪਿਛਲੇ',
14584            s: 'ਕੁਝ ਸਕਿੰਟ',
14585            ss: '%d ਸਕਿੰਟ',
14586            m: 'ਇਕ ਮਿੰਟ',
14587            mm: '%d ਮਿੰਟ',
14588            h: 'ਇੱਕ ਘੰਟਾ',
14589            hh: '%d ਘੰਟੇ',
14590            d: 'ਇੱਕ ਦਿਨ',
14591            dd: '%d ਦਿਨ',
14592            M: 'ਇੱਕ ਮਹੀਨਾ',
14593            MM: '%d ਮਹੀਨੇ',
14594            y: 'ਇੱਕ ਸਾਲ',
14595            yy: '%d ਸਾਲ',
14596        },
14597        preparse: function (string) {
14598            return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {
14599                return numberMap$e[match];
14600            });
14601        },
14602        postformat: function (string) {
14603            return string.replace(/\d/g, function (match) {
14604                return symbolMap$f[match];
14605            });
14606        },
14607        // Punjabi notation for meridiems are quite fuzzy in practice. While there exists
14608        // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.
14609        meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,
14610        meridiemHour: function (hour, meridiem) {
14611            if (hour === 12) {
14612                hour = 0;
14613            }
14614            if (meridiem === 'ਰਾਤ') {
14615                return hour < 4 ? hour : hour + 12;
14616            } else if (meridiem === 'ਸਵੇਰ') {
14617                return hour;
14618            } else if (meridiem === 'ਦੁਪਹਿਰ') {
14619                return hour >= 10 ? hour : hour + 12;
14620            } else if (meridiem === 'ਸ਼ਾਮ') {
14621                return hour + 12;
14622            }
14623        },
14624        meridiem: function (hour, minute, isLower) {
14625            if (hour < 4) {
14626                return 'ਰਾਤ';
14627            } else if (hour < 10) {
14628                return 'ਸਵੇਰ';
14629            } else if (hour < 17) {
14630                return 'ਦੁਪਹਿਰ';
14631            } else if (hour < 20) {
14632                return 'ਸ਼ਾਮ';
14633            } else {
14634                return 'ਰਾਤ';
14635            }
14636        },
14637        week: {
14638            dow: 0, // Sunday is the first day of the week.
14639            doy: 6, // The week that contains Jan 6th is the first week of the year.
14640        },
14641    });
14642
14643    //! moment.js locale configuration
14644
14645    var monthsNominative =
vendor: 24,143 bytes, lines 14646-15307
14646            'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień'.split(
14647                '_'
14648            ),
14649        monthsSubjective =
14650            'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia'.split(
14651                '_'
14652            ),
14653        monthsParse$a = [
14654            /^sty/i,
14655            /^lut/i,
14656            /^mar/i,
14657            /^kwi/i,
14658            /^maj/i,
14659            /^cze/i,
14660            /^lip/i,
14661            /^sie/i,
14662            /^wrz/i,
14663            /^paź/i,
14664            /^lis/i,
14665            /^gru/i,
14666        ];
14667    function plural$3(n) {
14668        return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;
14669    }
14670    function translate$8(number, withoutSuffix, key) {
14671        var result = number + ' ';
14672        switch (key) {
14673            case 'ss':
14674                return result + (plural$3(number) ? 'sekundy' : 'sekund');
14675            case 'm':
14676                return withoutSuffix ? 'minuta' : 'minutę';
14677            case 'mm':
14678                return result + (plural$3(number) ? 'minuty' : 'minut');
14679            case 'h':
14680                return withoutSuffix ? 'godzina' : 'godzinę';
14681            case 'hh':
14682                return result + (plural$3(number) ? 'godziny' : 'godzin');
14683            case 'ww':
14684                return result + (plural$3(number) ? 'tygodnie' : 'tygodni');
14685            case 'MM':
14686                return result + (plural$3(number) ? 'miesiące' : 'miesięcy');
14687            case 'yy':
14688                return result + (plural$3(number) ? 'lata' : 'lat');
14689        }
14690    }
14691
14692    hooks.defineLocale('pl', {
14693        months: function (momentToFormat, format) {
14694            if (!momentToFormat) {
14695                return monthsNominative;
14696            } else if (/D MMMM/.test(format)) {
14697                return monthsSubjective[momentToFormat.month()];
14698            } else {
14699                return monthsNominative[momentToFormat.month()];
14700            }
14701        },
14702        monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),
14703        monthsParse: monthsParse$a,
14704        longMonthsParse: monthsParse$a,
14705        shortMonthsParse: monthsParse$a,
14706        weekdays:
14707            'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split('_'),
14708        weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),
14709        weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),
14710        longDateFormat: {
14711            LT: 'HH:mm',
14712            LTS: 'HH:mm:ss',
14713            L: 'DD.MM.YYYY',
14714            LL: 'D MMMM YYYY',
14715            LLL: 'D MMMM YYYY HH:mm',
14716            LLLL: 'dddd, D MMMM YYYY HH:mm',
14717        },
14718        calendar: {
14719            sameDay: '[Dziś o] LT',
14720            nextDay: '[Jutro o] LT',
14721            nextWeek: function () {
14722                switch (this.day()) {
14723                    case 0:
14724                        return '[W niedzielę o] LT';
14725
14726                    case 2:
14727                        return '[We wtorek o] LT';
14728
14729                    case 3:
14730                        return '[W środę o] LT';
14731
14732                    case 6:
14733                        return '[W sobotę o] LT';
14734
14735                    default:
14736                        return '[W] dddd [o] LT';
14737                }
14738            },
14739            lastDay: '[Wczoraj o] LT',
14740            lastWeek: function () {
14741                switch (this.day()) {
14742                    case 0:
14743                        return '[W zeszłą niedzielę o] LT';
14744                    case 3:
14745                        return '[W zeszłą środę o] LT';
14746                    case 6:
14747                        return '[W zeszłą sobotę o] LT';
14748                    default:
14749                        return '[W zeszły] dddd [o] LT';
14750                }
14751            },
14752            sameElse: 'L',
14753        },
14754        relativeTime: {
14755            future: 'za %s',
14756            past: '%s temu',
14757            s: 'kilka sekund',
14758            ss: translate$8,
14759            m: translate$8,
14760            mm: translate$8,
14761            h: translate$8,
14762            hh: translate$8,
14763            d: '1 dzień',
14764            dd: '%d dni',
14765            w: 'tydzień',
14766            ww: translate$8,
14767            M: 'miesiąc',
14768            MM: translate$8,
14769            y: 'rok',
14770            yy: translate$8,
14771        },
14772        dayOfMonthOrdinalParse: /\d{1,2}\./,
14773        ordinal: '%d.',
14774        week: {
14775            dow: 1, // Monday is the first day of the week.
14776            doy: 4, // The week that contains Jan 4th is the first week of the year.
14777        },
14778    });
14779
14780    //! moment.js locale configuration
14781
14782    hooks.defineLocale('pt-br', {
14783        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14784            '_'
14785        ),
14786        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14787        weekdays:
14788            'domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado'.split(
14789                '_'
14790            ),
14791        weekdaysShort: 'dom_seg_ter_qua_qui_sex_sáb'.split('_'),
14792        weekdaysMin: 'do_2ª_3ª_4ª_5ª_6ª_sá'.split('_'),
14793        weekdaysParseExact: true,
14794        longDateFormat: {
14795            LT: 'HH:mm',
14796            LTS: 'HH:mm:ss',
14797            L: 'DD/MM/YYYY',
14798            LL: 'D [de] MMMM [de] YYYY',
14799            LLL: 'D [de] MMMM [de] YYYY [às] HH:mm',
14800            LLLL: 'dddd, D [de] MMMM [de] YYYY [às] HH:mm',
14801        },
14802        calendar: {
14803            sameDay: '[Hoje às] LT',
14804            nextDay: '[Amanhã às] LT',
14805            nextWeek: 'dddd [às] LT',
14806            lastDay: '[Ontem às] LT',
14807            lastWeek: function () {
14808                return this.day() === 0 || this.day() === 6
14809                    ? '[Último] dddd [às] LT' // Saturday + Sunday
14810                    : '[Última] dddd [às] LT'; // Monday - Friday
14811            },
14812            sameElse: 'L',
14813        },
14814        relativeTime: {
14815            future: 'em %s',
14816            past: 'há %s',
14817            s: 'poucos segundos',
14818            ss: '%d segundos',
14819            m: 'um minuto',
14820            mm: '%d minutos',
14821            h: 'uma hora',
14822            hh: '%d horas',
14823            d: 'um dia',
14824            dd: '%d dias',
14825            M: 'um mês',
14826            MM: '%d meses',
14827            y: 'um ano',
14828            yy: '%d anos',
14829        },
14830        dayOfMonthOrdinalParse: /\d{1,2}º/,
14831        ordinal: '%dº',
14832        invalidDate: 'Data inválida',
14833    });
14834
14835    //! moment.js locale configuration
14836
14837    hooks.defineLocale('pt', {
14838        months: 'janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(
14839            '_'
14840        ),
14841        monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),
14842        weekdays:
14843            'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split(
14844                '_'
14845            ),
14846        weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),
14847        weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),
14848        weekdaysParseExact: true,
14849        longDateFormat: {
14850            LT: 'HH:mm',
14851            LTS: 'HH:mm:ss',
14852            L: 'DD/MM/YYYY',
14853            LL: 'D [de] MMMM [de] YYYY',
14854            LLL: 'D [de] MMMM [de] YYYY HH:mm',
14855            LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',
14856        },
14857        calendar: {
14858            sameDay: '[Hoje às] LT',
14859            nextDay: '[Amanhã às] LT',
14860            nextWeek: 'dddd [às] LT',
14861            lastDay: '[Ontem às] LT',
14862            lastWeek: function () {
14863                return this.day() === 0 || this.day() === 6
14864                    ? '[Último] dddd [às] LT' // Saturday + Sunday
14865                    : '[Última] dddd [às] LT'; // Monday - Friday
14866            },
14867            sameElse: 'L',
14868        },
14869        relativeTime: {
14870            future: 'em %s',
14871            past: 'há %s',
14872            s: 'segundos',
14873            ss: '%d segundos',
14874            m: 'um minuto',
14875            mm: '%d minutos',
14876            h: 'uma hora',
14877            hh: '%d horas',
14878            d: 'um dia',
14879            dd: '%d dias',
14880            w: 'uma semana',
14881            ww: '%d semanas',
14882            M: 'um mês',
14883            MM: '%d meses',
14884            y: 'um ano',
14885            yy: '%d anos',
14886        },
14887        dayOfMonthOrdinalParse: /\d{1,2}º/,
14888        ordinal: '%dº',
14889        week: {
14890            dow: 1, // Monday is the first day of the week.
14891            doy: 4, // The week that contains Jan 4th is the first week of the year.
14892        },
14893    });
14894
14895    //! moment.js locale configuration
14896
14897    function relativeTimeWithPlural$2(number, withoutSuffix, key) {
14898        var format = {
14899                ss: 'secunde',
14900                mm: 'minute',
14901                hh: 'ore',
14902                dd: 'zile',
14903                ww: 'săptămâni',
14904                MM: 'luni',
14905                yy: 'ani',
14906            },
14907            separator = ' ';
14908        if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
14909            separator = ' de ';
14910        }
14911        return number + separator + format[key];
14912    }
14913
14914    hooks.defineLocale('ro', {
14915        months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(
14916            '_'
14917        ),
14918        monthsShort:
14919            'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(
14920                '_'
14921            ),
14922        monthsParseExact: true,
14923        weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sâmbătă'.split('_'),
14924        weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),
14925        weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),
14926        longDateFormat: {
14927            LT: 'H:mm',
14928            LTS: 'H:mm:ss',
14929            L: 'DD.MM.YYYY',
14930            LL: 'D MMMM YYYY',
14931            LLL: 'D MMMM YYYY H:mm',
14932            LLLL: 'dddd, D MMMM YYYY H:mm',
14933        },
14934        calendar: {
14935            sameDay: '[azi la] LT',
14936            nextDay: '[mâine la] LT',
14937            nextWeek: 'dddd [la] LT',
14938            lastDay: '[ieri la] LT',
14939            lastWeek: '[fosta] dddd [la] LT',
14940            sameElse: 'L',
14941        },
14942        relativeTime: {
14943            future: 'peste %s',
14944            past: '%s în urmă',
14945            s: 'câteva secunde',
14946            ss: relativeTimeWithPlural$2,
14947            m: 'un minut',
14948            mm: relativeTimeWithPlural$2,
14949            h: 'o oră',
14950            hh: relativeTimeWithPlural$2,
14951            d: 'o zi',
14952            dd: relativeTimeWithPlural$2,
14953            w: 'o săptămână',
14954            ww: relativeTimeWithPlural$2,
14955            M: 'o lună',
14956            MM: relativeTimeWithPlural$2,
14957            y: 'un an',
14958            yy: relativeTimeWithPlural$2,
14959        },
14960        week: {
14961            dow: 1, // Monday is the first day of the week.
14962            doy: 7, // The week that contains Jan 7th is the first week of the year.
14963        },
14964    });
14965
14966    //! moment.js locale configuration
14967
14968    function plural$4(word, num) {
14969        var forms = word.split('_');
14970        return num % 10 === 1 && num % 100 !== 11
14971            ? forms[0]
14972            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
14973            ? forms[1]
14974            : forms[2];
14975    }
14976    function relativeTimeWithPlural$3(number, withoutSuffix, key) {
14977        var format = {
14978            ss: withoutSuffix ? 'секунда_секунды_секунд' : 'секунду_секунды_секунд',
14979            mm: withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
14980            hh: 'час_часа_часов',
14981            dd: 'день_дня_дней',
14982            ww: 'неделя_недели_недель',
14983            MM: 'месяц_месяца_месяцев',
14984            yy: 'год_года_лет',
14985        };
14986        if (key === 'm') {
14987            return withoutSuffix ? 'минута' : 'минуту';
14988        } else {
14989            return number + ' ' + plural$4(format[key], +number);
14990        }
14991    }
14992    var monthsParse$b = [
14993        /^янв/i,
14994        /^фев/i,
14995        /^мар/i,
14996        /^апр/i,
14997        /^ма[йя]/i,
14998        /^июн/i,
14999        /^июл/i,
15000        /^авг/i,
15001        /^сен/i,
15002        /^окт/i,
15003        /^ноя/i,
15004        /^дек/i,
15005    ];
15006
15007    // http://new.gramota.ru/spravka/rules/139-prop : § 103
15008    // Сокращения месяцев: http://new.gramota.ru/spravka/buro/search-answer?s=242637
15009    // CLDR data:          http://www.unicode.org/cldr/charts/28/summary/ru.html#1753
15010    hooks.defineLocale('ru', {
15011        months: {
15012            format: 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split(
15013                '_'
15014            ),
15015            standalone:
15016                'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split(
15017                    '_'
15018                ),
15019        },
15020        monthsShort: {
15021            // по CLDR именно "июл." и "июн.", но какой смысл менять букву на точку?
15022            format: 'янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.'.split(
15023                '_'
15024            ),
15025            standalone:
15026                'янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.'.split(
15027                    '_'
15028                ),
15029        },
15030        weekdays: {
15031            standalone:
15032                'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split(
15033                    '_'
15034                ),
15035            format: 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split(
15036                '_'
15037            ),
15038            isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/,
15039        },
15040        weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
15041        weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),
15042        monthsParse: monthsParse$b,
15043        longMonthsParse: monthsParse$b,
15044        shortMonthsParse: monthsParse$b,
15045
15046        // полные названия с падежами, по три буквы, для некоторых, по 4 буквы, сокращения с точкой и без точки
15047        monthsRegex:
15048            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
15049
15050        // копия предыдущего
15051        monthsShortRegex:
15052            /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i,
15053
15054        // полные названия с падежами
15055        monthsStrictRegex:
15056            /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,
15057
15058        // Выражение, которое соответствует только сокращённым формам
15059        monthsShortStrictRegex:
15060            /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i,
15061        longDateFormat: {
15062            LT: 'H:mm',
15063            LTS: 'H:mm:ss',
15064            L: 'DD.MM.YYYY',
15065            LL: 'D MMMM YYYY г.',
15066            LLL: 'D MMMM YYYY г., H:mm',
15067            LLLL: 'dddd, D MMMM YYYY г., H:mm',
15068        },
15069        calendar: {
15070            sameDay: '[Сегодня, в] LT',
15071            nextDay: '[Завтра, в] LT',
15072            lastDay: '[Вчера, в] LT',
15073            nextWeek: function (now) {
15074                if (now.week() !== this.week()) {
15075                    switch (this.day()) {
15076                        case 0:
15077                            return '[В следующее] dddd, [в] LT';
15078                        case 1:
15079                        case 2:
15080                        case 4:
15081                            return '[В следующий] dddd, [в] LT';
15082                        case 3:
15083                        case 5:
15084                        case 6:
15085                            return '[В следующую] dddd, [в] LT';
15086                    }
15087                } else {
15088                    if (this.day() === 2) {
15089                        return '[Во] dddd, [в] LT';
15090                    } else {
15091                        return '[В] dddd, [в] LT';
15092                    }
15093                }
15094            },
15095            lastWeek: function (now) {
15096                if (now.week() !== this.week()) {
15097                    switch (this.day()) {
15098                        case 0:
15099                            return '[В прошлое] dddd, [в] LT';
15100                        case 1:
15101                        case 2:
15102                        case 4:
15103                            return '[В прошлый] dddd, [в] LT';
15104                        case 3:
15105                        case 5:
15106                        case 6:
15107                            return '[В прошлую] dddd, [в] LT';
15108                    }
15109                } else {
15110                    if (this.day() === 2) {
15111                        return '[Во] dddd, [в] LT';
15112                    } else {
15113                        return '[В] dddd, [в] LT';
15114                    }
15115                }
15116            },
15117            sameElse: 'L',
15118        },
15119        relativeTime: {
15120            future: 'через %s',
15121            past: '%s назад',
15122            s: 'несколько секунд',
15123            ss: relativeTimeWithPlural$3,
15124            m: relativeTimeWithPlural$3,
15125            mm: relativeTimeWithPlural$3,
15126            h: 'час',
15127            hh: relativeTimeWithPlural$3,
15128            d: 'день',
15129            dd: relativeTimeWithPlural$3,
15130            w: 'неделя',
15131            ww: relativeTimeWithPlural$3,
15132            M: 'месяц',
15133            MM: relativeTimeWithPlural$3,
15134            y: 'год',
15135            yy: relativeTimeWithPlural$3,
15136        },
15137        meridiemParse: /ночи|утра|дня|вечера/i,
15138        isPM: function (input) {
15139            return /^(дня|вечера)$/.test(input);
15140        },
15141        meridiem: function (hour, minute, isLower) {
15142            if (hour < 4) {
15143                return 'ночи';
15144            } else if (hour < 12) {
15145                return 'утра';
15146            } else if (hour < 17) {
15147                return 'дня';
15148            } else {
15149                return 'вечера';
15150            }
15151        },
15152        dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/,
15153        ordinal: function (number, period) {
15154            switch (period) {
15155                case 'M':
15156                case 'd':
15157                case 'DDD':
15158                    return number + '-й';
15159                case 'D':
15160                    return number + '-го';
15161                case 'w':
15162                case 'W':
15163                    return number + '-я';
15164                default:
15165                    return number;
15166            }
15167        },
15168        week: {
15169            dow: 1, // Monday is the first day of the week.
15170            doy: 4, // The week that contains Jan 4th is the first week of the year.
15171        },
15172    });
15173
15174    //! moment.js locale configuration
15175
15176    var months$9 = [
15177            'جنوري',
15178            'فيبروري',
15179            'مارچ',
15180            'اپريل',
15181            'مئي',
15182            'جون',
15183            'جولاءِ',
15184            'آگسٽ',
15185            'سيپٽمبر',
15186            'آڪٽوبر',
15187            'نومبر',
15188            'ڊسمبر',
15189        ],
15190        days$1 = ['آچر', 'سومر', 'اڱارو', 'اربع', 'خميس', 'جمع', 'ڇنڇر'];
15191
15192    hooks.defineLocale('sd', {
15193        months: months$9,
15194        monthsShort: months$9,
15195        weekdays: days$1,
15196        weekdaysShort: days$1,
15197        weekdaysMin: days$1,
15198        longDateFormat: {
15199            LT: 'HH:mm',
15200            LTS: 'HH:mm:ss',
15201            L: 'DD/MM/YYYY',
15202            LL: 'D MMMM YYYY',
15203            LLL: 'D MMMM YYYY HH:mm',
15204            LLLL: 'dddd، D MMMM YYYY HH:mm',
15205        },
15206        meridiemParse: /صبح|شام/,
15207        isPM: function (input) {
15208            return 'شام' === input;
15209        },
15210        meridiem: function (hour, minute, isLower) {
15211            if (hour < 12) {
15212                return 'صبح';
15213            }
15214            return 'شام';
15215        },
15216        calendar: {
15217            sameDay: '[اڄ] LT',
15218            nextDay: '[سڀاڻي] LT',
15219            nextWeek: 'dddd [اڳين هفتي تي] LT',
15220            lastDay: '[ڪالهه] LT',
15221            lastWeek: '[گزريل هفتي] dddd [تي] LT',
15222            sameElse: 'L',
15223        },
15224        relativeTime: {
15225            future: '%s پوء',
15226            past: '%s اڳ',
15227            s: 'چند سيڪنڊ',
15228            ss: '%d سيڪنڊ',
15229            m: 'هڪ منٽ',
15230            mm: '%d منٽ',
15231            h: 'هڪ ڪلاڪ',
15232            hh: '%d ڪلاڪ',
15233            d: 'هڪ ڏينهن',
15234            dd: '%d ڏينهن',
15235            M: 'هڪ مهينو',
15236            MM: '%d مهينا',
15237            y: 'هڪ سال',
15238            yy: '%d سال',
15239        },
15240        preparse: function (string) {
15241            return string.replace(/،/g, ',');
15242        },
15243        postformat: function (string) {
15244            return string.replace(/,/g, '،');
15245        },
15246        week: {
15247            dow: 1, // Monday is the first day of the week.
15248            doy: 4, // The week that contains Jan 4th is the first week of the year.
15249        },
15250    });
15251
15252    //! moment.js locale configuration
15253
15254    hooks.defineLocale('se', {
15255        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(
15256            '_'
15257        ),
15258        monthsShort:
15259            'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov'.split('_'),
15260        weekdays:
15261            'sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat'.split(
15262                '_'
15263            ),
15264        weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_láv'.split('_'),
15265        weekdaysMin: 's_v_m_g_d_b_L'.split('_'),
15266        longDateFormat: {
15267            LT: 'HH:mm',
15268            LTS: 'HH:mm:ss',
15269            L: 'DD.MM.YYYY',
15270            LL: 'MMMM D. [b.] YYYY',
15271            LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',
15272            LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',
15273        },
15274        calendar: {
15275            sameDay: '[otne ti] LT',
15276            nextDay: '[ihttin ti] LT',
15277            nextWeek: 'dddd [ti] LT',
15278            lastDay: '[ikte ti] LT',
15279            lastWeek: '[ovddit] dddd [ti] LT',
15280            sameElse: 'L',
15281        },
15282        relativeTime: {
15283            future: '%s geažes',
15284            past: 'maŋit %s',
15285            s: 'moadde sekunddat',
15286            ss: '%d sekunddat',
15287            m: 'okta minuhta',
15288            mm: '%d minuhtat',
15289            h: 'okta diimmu',
15290            hh: '%d diimmut',
15291            d: 'okta beaivi',
15292            dd: '%d beaivvit',
15293            M: 'okta mánnu',
15294            MM: '%d mánut',
15295            y: 'okta jahki',
15296            yy: '%d jagit',
15297        },
15298        dayOfMonthOrdinalParse: /\d{1,2}\./,
15299        ordinal: '%d.',
15300        week: {
15301            dow: 1, // Monday is the first day of the week.
15302            doy: 4, // The week that contains Jan 4th is the first week of the year.
15303        },
15304    });
15305
15306    //! moment.js locale configuration
15307
vendor: 16,384 bytes, lines 15308-15720
15308    /*jshint -W100*/
15309    hooks.defineLocale('si', {
15310        months: 'ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්'.split(
15311            '_'
15312        ),
15313        monthsShort: 'ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ'.split(
15314            '_'
15315        ),
15316        weekdays:
15317            'ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා'.split(
15318                '_'
15319            ),
15320        weekdaysShort: 'ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන'.split('_'),
15321        weekdaysMin: 'ඉ_ස_අ_බ_බ්‍ර_සි_සෙ'.split('_'),
15322        weekdaysParseExact: true,
15323        longDateFormat: {
15324            LT: 'a h:mm',
15325            LTS: 'a h:mm:ss',
15326            L: 'YYYY/MM/DD',
15327            LL: 'YYYY MMMM D',
15328            LLL: 'YYYY MMMM D, a h:mm',
15329            LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',
15330        },
15331        calendar: {
15332            sameDay: '[අද] LT[ට]',
15333            nextDay: '[හෙට] LT[ට]',
15334            nextWeek: 'dddd LT[à¶§]',
15335            lastDay: '[ඊයේ] LT[ට]',
15336            lastWeek: '[පසුගිය] dddd LT[ට]',
15337            sameElse: 'L',
15338        },
15339        relativeTime: {
15340            future: '%sකින්',
15341            past: '%sකට පෙර',
15342            s: 'තත්පර කිහිපය',
15343            ss: 'තත්පර %d',
15344            m: 'මිනිත්තුව',
15345            mm: 'මිනිත්තු %d',
15346            h: 'පැය',
15347            hh: 'පැය %d',
15348            d: 'දිනය',
15349            dd: 'දින %d',
15350            M: 'මාසය',
15351            MM: 'මාස %d',
15352            y: 'වසර',
15353            yy: 'වසර %d',
15354        },
15355        dayOfMonthOrdinalParse: /\d{1,2} වැනි/,
15356        ordinal: function (number) {
15357            return number + ' වැනි';
15358        },
15359        meridiemParse: /පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,
15360        isPM: function (input) {
15361            return input === 'ප.ව.' || input === 'පස් වරු';
15362        },
15363        meridiem: function (hours, minutes, isLower) {
15364            if (hours > 11) {
15365                return isLower ? 'ප.ව.' : 'පස් වරු';
15366            } else {
15367                return isLower ? 'පෙ.ව.' : 'පෙර වරු';
15368            }
15369        },
15370    });
15371
15372    //! moment.js locale configuration
15373
15374    var months$a =
15375            'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split(
15376                '_'
15377            ),
15378        monthsShort$7 = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');
15379    function plural$5(n) {
15380        return n > 1 && n < 5;
15381    }
15382    function translate$9(number, withoutSuffix, key, isFuture) {
15383        var result = number + ' ';
15384        switch (key) {
15385            case 's': // a few seconds / in a few seconds / a few seconds ago
15386                return withoutSuffix || isFuture ? 'pár sekúnd' : 'pár sekundami';
15387            case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
15388                if (withoutSuffix || isFuture) {
15389                    return result + (plural$5(number) ? 'sekundy' : 'sekúnd');
15390                } else {
15391                    return result + 'sekundami';
15392                }
15393            case 'm': // a minute / in a minute / a minute ago
15394                return withoutSuffix ? 'minúta' : isFuture ? 'minútu' : 'minútou';
15395            case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
15396                if (withoutSuffix || isFuture) {
15397                    return result + (plural$5(number) ? 'minúty' : 'minút');
15398                } else {
15399                    return result + 'minútami';
15400                }
15401            case 'h': // an hour / in an hour / an hour ago
15402                return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
15403            case 'hh': // 9 hours / in 9 hours / 9 hours ago
15404                if (withoutSuffix || isFuture) {
15405                    return result + (plural$5(number) ? 'hodiny' : 'hodín');
15406                } else {
15407                    return result + 'hodinami';
15408                }
15409            case 'd': // a day / in a day / a day ago
15410                return withoutSuffix || isFuture ? 'deň' : 'dňom';
15411            case 'dd': // 9 days / in 9 days / 9 days ago
15412                if (withoutSuffix || isFuture) {
15413                    return result + (plural$5(number) ? 'dni' : 'dní');
15414                } else {
15415                    return result + 'dňami';
15416                }
15417            case 'M': // a month / in a month / a month ago
15418                return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';
15419            case 'MM': // 9 months / in 9 months / 9 months ago
15420                if (withoutSuffix || isFuture) {
15421                    return result + (plural$5(number) ? 'mesiace' : 'mesiacov');
15422                } else {
15423                    return result + 'mesiacmi';
15424                }
15425            case 'y': // a year / in a year / a year ago
15426                return withoutSuffix || isFuture ? 'rok' : 'rokom';
15427            case 'yy': // 9 years / in 9 years / 9 years ago
15428                if (withoutSuffix || isFuture) {
15429                    return result + (plural$5(number) ? 'roky' : 'rokov');
15430                } else {
15431                    return result + 'rokmi';
15432                }
15433        }
15434    }
15435
15436    hooks.defineLocale('sk', {
15437        months: months$a,
15438        monthsShort: monthsShort$7,
15439        weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'),
15440        weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'),
15441        weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'),
15442        longDateFormat: {
15443            LT: 'H:mm',
15444            LTS: 'H:mm:ss',
15445            L: 'DD.MM.YYYY',
15446            LL: 'D. MMMM YYYY',
15447            LLL: 'D. MMMM YYYY H:mm',
15448            LLLL: 'dddd D. MMMM YYYY H:mm',
15449        },
15450        calendar: {
15451            sameDay: '[dnes o] LT',
15452            nextDay: '[zajtra o] LT',
15453            nextWeek: function () {
15454                switch (this.day()) {
15455                    case 0:
15456                        return '[v nedeľu o] LT';
15457                    case 1:
15458                    case 2:
15459                        return '[v] dddd [o] LT';
15460                    case 3:
15461                        return '[v stredu o] LT';
15462                    case 4:
15463                        return '[vo štvrtok o] LT';
15464                    case 5:
15465                        return '[v piatok o] LT';
15466                    case 6:
15467                        return '[v sobotu o] LT';
15468                }
15469            },
15470            lastDay: '[včera o] LT',
15471            lastWeek: function () {
15472                switch (this.day()) {
15473                    case 0:
15474                        return '[minulú nedeľu o] LT';
15475                    case 1:
15476                    case 2:
15477                        return '[minulý] dddd [o] LT';
15478                    case 3:
15479                        return '[minulú stredu o] LT';
15480                    case 4:
15481                    case 5:
15482                        return '[minulý] dddd [o] LT';
15483                    case 6:
15484                        return '[minulú sobotu o] LT';
15485                }
15486            },
15487            sameElse: 'L',
15488        },
15489        relativeTime: {
15490            future: 'za %s',
15491            past: 'pred %s',
15492            s: translate$9,
15493            ss: translate$9,
15494            m: translate$9,
15495            mm: translate$9,
15496            h: translate$9,
15497            hh: translate$9,
15498            d: translate$9,
15499            dd: translate$9,
15500            M: translate$9,
15501            MM: translate$9,
15502            y: translate$9,
15503            yy: translate$9,
15504        },
15505        dayOfMonthOrdinalParse: /\d{1,2}\./,
15506        ordinal: '%d.',
15507        week: {
15508            dow: 1, // Monday is the first day of the week.
15509            doy: 4, // The week that contains Jan 4th is the first week of the year.
15510        },
15511    });
15512
15513    //! moment.js locale configuration
15514
15515    function processRelativeTime$7(number, withoutSuffix, key, isFuture) {
15516        var result = number + ' ';
15517        switch (key) {
15518            case 's':
15519                return withoutSuffix || isFuture
15520                    ? 'nekaj sekund'
15521                    : 'nekaj sekundami';
15522            case 'ss':
15523                if (number === 1) {
15524                    result += withoutSuffix ? 'sekundo' : 'sekundi';
15525                } else if (number === 2) {
15526                    result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';
15527                } else if (number < 5) {
15528                    result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';
15529                } else {
15530                    result += 'sekund';
15531                }
15532                return result;
15533            case 'm':
15534                return withoutSuffix ? 'ena minuta' : 'eno minuto';
15535            case 'mm':
15536                if (number === 1) {
15537                    result += withoutSuffix ? 'minuta' : 'minuto';
15538                } else if (number === 2) {
15539                    result += withoutSuffix || isFuture ? 'minuti' : 'minutama';
15540                } else if (number < 5) {
15541                    result += withoutSuffix || isFuture ? 'minute' : 'minutami';
15542                } else {
15543                    result += withoutSuffix || isFuture ? 'minut' : 'minutami';
15544                }
15545                return result;
15546            case 'h':
15547                return withoutSuffix ? 'ena ura' : 'eno uro';
15548            case 'hh':
15549                if (number === 1) {
15550                    result += withoutSuffix ? 'ura' : 'uro';
15551                } else if (number === 2) {
15552                    result += withoutSuffix || isFuture ? 'uri' : 'urama';
15553                } else if (number < 5) {
15554                    result += withoutSuffix || isFuture ? 'ure' : 'urami';
15555                } else {
15556                    result += withoutSuffix || isFuture ? 'ur' : 'urami';
15557                }
15558                return result;
15559            case 'd':
15560                return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';
15561            case 'dd':
15562                if (number === 1) {
15563                    result += withoutSuffix || isFuture ? 'dan' : 'dnem';
15564                } else if (number === 2) {
15565                    result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';
15566                } else {
15567                    result += withoutSuffix || isFuture ? 'dni' : 'dnevi';
15568                }
15569                return result;
15570            case 'M':
15571                return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';
15572            case 'MM':
15573                if (number === 1) {
15574                    result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';
15575                } else if (number === 2) {
15576                    result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';
15577                } else if (number < 5) {
15578                    result += withoutSuffix || isFuture ? 'mesece' : 'meseci';
15579                } else {
15580                    result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';
15581                }
15582                return result;
15583            case 'y':
15584                return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';
15585            case 'yy':
15586                if (number === 1) {
15587                    result += withoutSuffix || isFuture ? 'leto' : 'letom';
15588                } else if (number === 2) {
15589                    result += withoutSuffix || isFuture ? 'leti' : 'letoma';
15590                } else if (number < 5) {
15591                    result += withoutSuffix || isFuture ? 'leta' : 'leti';
15592                } else {
15593                    result += withoutSuffix || isFuture ? 'let' : 'leti';
15594                }
15595                return result;
15596        }
15597    }
15598
15599    hooks.defineLocale('sl', {
15600        months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(
15601            '_'
15602        ),
15603        monthsShort:
15604            'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(
15605                '_'
15606            ),
15607        monthsParseExact: true,
15608        weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),
15609        weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),
15610        weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),
15611        weekdaysParseExact: true,
15612        longDateFormat: {
15613            LT: 'H:mm',
15614            LTS: 'H:mm:ss',
15615            L: 'DD. MM. YYYY',
15616            LL: 'D. MMMM YYYY',
15617            LLL: 'D. MMMM YYYY H:mm',
15618            LLLL: 'dddd, D. MMMM YYYY H:mm',
15619        },
15620        calendar: {
15621            sameDay: '[danes ob] LT',
15622            nextDay: '[jutri ob] LT',
15623
15624            nextWeek: function () {
15625                switch (this.day()) {
15626                    case 0:
15627                        return '[v] [nedeljo] [ob] LT';
15628                    case 3:
15629                        return '[v] [sredo] [ob] LT';
15630                    case 6:
15631                        return '[v] [soboto] [ob] LT';
15632                    case 1:
15633                    case 2:
15634                    case 4:
15635                    case 5:
15636                        return '[v] dddd [ob] LT';
15637                }
15638            },
15639            lastDay: '[včeraj ob] LT',
15640            lastWeek: function () {
15641                switch (this.day()) {
15642                    case 0:
15643                        return '[prejšnjo] [nedeljo] [ob] LT';
15644                    case 3:
15645                        return '[prejšnjo] [sredo] [ob] LT';
15646                    case 6:
15647                        return '[prejšnjo] [soboto] [ob] LT';
15648                    case 1:
15649                    case 2:
15650                    case 4:
15651                    case 5:
15652                        return '[prejšnji] dddd [ob] LT';
15653                }
15654            },
15655            sameElse: 'L',
15656        },
15657        relativeTime: {
15658            future: 'čez %s',
15659            past: 'pred %s',
15660            s: processRelativeTime$7,
15661            ss: processRelativeTime$7,
15662            m: processRelativeTime$7,
15663            mm: processRelativeTime$7,
15664            h: processRelativeTime$7,
15665            hh: processRelativeTime$7,
15666            d: processRelativeTime$7,
15667            dd: processRelativeTime$7,
15668            M: processRelativeTime$7,
15669            MM: processRelativeTime$7,
15670            y: processRelativeTime$7,
15671            yy: processRelativeTime$7,
15672        },
15673        dayOfMonthOrdinalParse: /\d{1,2}\./,
15674        ordinal: '%d.',
15675        week: {
15676            dow: 1, // Monday is the first day of the week.
15677            doy: 7, // The week that contains Jan 7th is the first week of the year.
15678        },
15679    });
15680
15681    //! moment.js locale configuration
15682
15683    hooks.defineLocale('sq', {
15684        months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split(
15685            '_'
15686        ),
15687        monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),
15688        weekdays: 'E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split(
15689            '_'
15690        ),
15691        weekdaysShort: 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),
15692        weekdaysMin: 'D_H_Ma_Më_E_P_Sh'.split('_'),
15693        weekdaysParseExact: true,
15694        meridiemParse: /PD|MD/,
15695        isPM: function (input) {
15696            return input.charAt(0) === 'M';
15697        },
15698        meridiem: function (hours, minutes, isLower) {
15699            return hours < 12 ? 'PD' : 'MD';
15700        },
15701        longDateFormat: {
15702            LT: 'HH:mm',
15703            LTS: 'HH:mm:ss',
15704            L: 'DD/MM/YYYY',
15705            LL: 'D MMMM YYYY',
15706            LLL: 'D MMMM YYYY HH:mm',
15707            LLLL: 'dddd, D MMMM YYYY HH:mm',
15708        },
15709        calendar: {
15710            sameDay: '[Sot në] LT',
15711            nextDay: '[Nesër në] LT',
15712            nextWeek: 'dddd [në] LT',
15713            lastDay: '[Dje në] LT',
15714            lastWeek: 'dddd [e kaluar në] LT',
15715            sameElse: 'L',
15716        },
15717        relativeTime: {
15718            future: 'në %s',
15719            past: '%s më parë',
15720          
vendor: 10,097 bytes, lines 15720-15989
15720  s: 'disa sekonda',
15721            ss: '%d sekonda',
15722            m: 'një minutë',
15723            mm: '%d minuta',
15724            h: 'një orë',
15725            hh: '%d orë',
15726            d: 'një ditë',
15727            dd: '%d ditë',
15728            M: 'një muaj',
15729            MM: '%d muaj',
15730            y: 'një vit',
15731            yy: '%d vite',
15732        },
15733        dayOfMonthOrdinalParse: /\d{1,2}\./,
15734        ordinal: '%d.',
15735        week: {
15736            dow: 1, // Monday is the first day of the week.
15737            doy: 4, // The week that contains Jan 4th is the first week of the year.
15738        },
15739    });
15740
15741    //! moment.js locale configuration
15742
15743    var translator$1 = {
15744        words: {
15745            //Different grammatical cases
15746            ss: ['секунда', 'секунде', 'секунди'],
15747            m: ['један минут', 'једног минута'],
15748            mm: ['минут', 'минута', 'минута'],
15749            h: ['један сат', 'једног сата'],
15750            hh: ['сат', 'сата', 'сати'],
15751            d: ['један дан', 'једног дана'],
15752            dd: ['дан', 'дана', 'дана'],
15753            M: ['један месец', 'једног месеца'],
15754            MM: ['месец', 'месеца', 'месеци'],
15755            y: ['једну годину', 'једне године'],
15756            yy: ['годину', 'године', 'година'],
15757        },
15758        correctGrammaticalCase: function (number, wordKey) {
15759            if (
15760                number % 10 >= 1 &&
15761                number % 10 <= 4 &&
15762                (number % 100 < 10 || number % 100 >= 20)
15763            ) {
15764                return number % 10 === 1 ? wordKey[0] : wordKey[1];
15765            }
15766            return wordKey[2];
15767        },
15768        translate: function (number, withoutSuffix, key, isFuture) {
15769            var wordKey = translator$1.words[key];
15770
15771            if (key.length === 1) {
15772                // Nominativ
15773                if (key === 'y' && withoutSuffix) return 'једна година';
15774                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
15775            }
15776
15777            const word = translator$1.correctGrammaticalCase(number, wordKey);
15778            // Nominativ
15779            if (key === 'yy' && withoutSuffix && word === 'годину') {
15780                return number + ' година';
15781            }
15782
15783            return number + ' ' + word;
15784        },
15785    };
15786
15787    hooks.defineLocale('sr-cyrl', {
15788        months: 'јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар'.split(
15789            '_'
15790        ),
15791        monthsShort:
15792            'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.'.split('_'),
15793        monthsParseExact: true,
15794        weekdays: 'недеља_понедељак_уторак_среда_четвртак_петак_субота'.split('_'),
15795        weekdaysShort: 'нед._пон._уто._сре._чет._пет._суб.'.split('_'),
15796        weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),
15797        weekdaysParseExact: true,
15798        longDateFormat: {
15799            LT: 'H:mm',
15800            LTS: 'H:mm:ss',
15801            L: 'D. M. YYYY.',
15802            LL: 'D. MMMM YYYY.',
15803            LLL: 'D. MMMM YYYY. H:mm',
15804            LLLL: 'dddd, D. MMMM YYYY. H:mm',
15805        },
15806        calendar: {
15807            sameDay: '[данас у] LT',
15808            nextDay: '[сутра у] LT',
15809            nextWeek: function () {
15810                switch (this.day()) {
15811                    case 0:
15812                        return '[у] [недељу] [у] LT';
15813                    case 3:
15814                        return '[у] [среду] [у] LT';
15815                    case 6:
15816                        return '[у] [суботу] [у] LT';
15817                    case 1:
15818                    case 2:
15819                    case 4:
15820                    case 5:
15821                        return '[у] dddd [у] LT';
15822                }
15823            },
15824            lastDay: '[јуче у] LT',
15825            lastWeek: function () {
15826                var lastWeekDays = [
15827                    '[прошле] [недеље] [у] LT',
15828                    '[прошлог] [понедељка] [у] LT',
15829                    '[прошлог] [уторка] [у] LT',
15830                    '[прошле] [среде] [у] LT',
15831                    '[прошлог] [четвртка] [у] LT',
15832                    '[прошлог] [петка] [у] LT',
15833                    '[прошле] [суботе] [у] LT',
15834                ];
15835                return lastWeekDays[this.day()];
15836            },
15837            sameElse: 'L',
15838        },
15839        relativeTime: {
15840            future: 'за %s',
15841            past: 'пре %s',
15842            s: 'неколико секунди',
15843            ss: translator$1.translate,
15844            m: translator$1.translate,
15845            mm: translator$1.translate,
15846            h: translator$1.translate,
15847            hh: translator$1.translate,
15848            d: translator$1.translate,
15849            dd: translator$1.translate,
15850            M: translator$1.translate,
15851            MM: translator$1.translate,
15852            y: translator$1.translate,
15853            yy: translator$1.translate,
15854        },
15855        dayOfMonthOrdinalParse: /\d{1,2}\./,
15856        ordinal: '%d.',
15857        week: {
15858            dow: 1, // Monday is the first day of the week.
15859            doy: 7, // The week that contains Jan 1st is the first week of the year.
15860        },
15861    });
15862
15863    //! moment.js locale configuration
15864
15865    var translator$2 = {
15866        words: {
15867            //Different grammatical cases
15868            ss: ['sekunda', 'sekunde', 'sekundi'],
15869            m: ['jedan minut', 'jednog minuta'],
15870            mm: ['minut', 'minuta', 'minuta'],
15871            h: ['jedan sat', 'jednog sata'],
15872            hh: ['sat', 'sata', 'sati'],
15873            d: ['jedan dan', 'jednog dana'],
15874            dd: ['dan', 'dana', 'dana'],
15875            M: ['jedan mesec', 'jednog meseca'],
15876            MM: ['mesec', 'meseca', 'meseci'],
15877            y: ['jednu godinu', 'jedne godine'],
15878            yy: ['godinu', 'godine', 'godina'],
15879        },
15880        correctGrammaticalCase: function (number, wordKey) {
15881            if (
15882                number % 10 >= 1 &&
15883                number % 10 <= 4 &&
15884                (number % 100 < 10 || number % 100 >= 20)
15885            ) {
15886                return number % 10 === 1 ? wordKey[0] : wordKey[1];
15887            }
15888            return wordKey[2];
15889        },
15890        translate: function (number, withoutSuffix, key, isFuture) {
15891            var wordKey = translator$2.words[key];
15892
15893            if (key.length === 1) {
15894                // Nominativ
15895                if (key === 'y' && withoutSuffix) return 'jedna godina';
15896                return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
15897            }
15898
15899            const word = translator$2.correctGrammaticalCase(number, wordKey);
15900            // Nominativ
15901            if (key === 'yy' && withoutSuffix && word === 'godinu') {
15902                return number + ' godina';
15903            }
15904
15905            return number + ' ' + word;
15906        },
15907    };
15908
15909    hooks.defineLocale('sr', {
15910        months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(
15911            '_'
15912        ),
15913        monthsShort:
15914            'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split('_'),
15915        monthsParseExact: true,
15916        weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(
15917            '_'
15918        ),
15919        weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),
15920        weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),
15921        weekdaysParseExact: true,
15922        longDateFormat: {
15923            LT: 'H:mm',
15924            LTS: 'H:mm:ss',
15925            L: 'D. M. YYYY.',
15926            LL: 'D. MMMM YYYY.',
15927            LLL: 'D. MMMM YYYY. H:mm',
15928            LLLL: 'dddd, D. MMMM YYYY. H:mm',
15929        },
15930        calendar: {
15931            sameDay: '[danas u] LT',
15932            nextDay: '[sutra u] LT',
15933            nextWeek: function () {
15934                switch (this.day()) {
15935                    case 0:
15936                        return '[u] [nedelju] [u] LT';
15937                    case 3:
15938                        return '[u] [sredu] [u] LT';
15939                    case 6:
15940                        return '[u] [subotu] [u] LT';
15941                    case 1:
15942                    case 2:
15943                    case 4:
15944                    case 5:
15945                        return '[u] dddd [u] LT';
15946                }
15947            },
15948            lastDay: '[juče u] LT',
15949            lastWeek: function () {
15950                var lastWeekDays = [
15951                    '[prošle] [nedelje] [u] LT',
15952                    '[prošlog] [ponedeljka] [u] LT',
15953                    '[prošlog] [utorka] [u] LT',
15954                    '[prošle] [srede] [u] LT',
15955                    '[prošlog] [četvrtka] [u] LT',
15956                    '[prošlog] [petka] [u] LT',
15957                    '[prošle] [subote] [u] LT',
15958                ];
15959                return lastWeekDays[this.day()];
15960            },
15961            sameElse: 'L',
15962        },
15963        relativeTime: {
15964            future: 'za %s',
15965            past: 'pre %s',
15966            s: 'nekoliko sekundi',
15967            ss: translator$2.translate,
15968            m: translator$2.translate,
15969            mm: translator$2.translate,
15970            h: translator$2.translate,
15971            hh: translator$2.translate,
15972            d: translator$2.translate,
15973            dd: translator$2.translate,
15974            M: translator$2.translate,
15975            MM: translator$2.translate,
15976            y: translator$2.translate,
15977            yy: translator$2.translate,
15978        },
15979        dayOfMonthOrdinalParse: /\d{1,2}\./,
15980        ordinal: '%d.',
15981        week: {
15982            dow: 1, // Monday is the first day of the week.
15983            doy: 7, // The week that contains Jan 7th is the first week of the year.
15984        },
15985    });
15986
15987    //! moment.js locale configuration
15988
15989    hooks.defineLocale('ss', {
15990        months: "Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni".split(
15991            '_'
15992        ),
15993        monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),
15994        weekdays:
15995            'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(
15996                '_'
15997            ),
15998        weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),
15999        weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),
16000        weekdaysParseExact: true,
16001        longDateFormat: {
16002            LT: 'h:mm A',
16003            LTS: 'h:mm:ss A',
16004            L: 'DD/MM/YYYY',
16005            LL: 'D MMMM YYYY',
16006            LLL: 'D MMMM YYYY h:mm A',
16007            LLLL: 'dddd, D MMMM YYYY h:mm A',
16008        },
16009        calendar: {
16010            sameDay: '[Namuhla nga] LT',
16011            nextDay: '[Kusasa nga] LT',
16012            nextWeek: 'dddd [nga] LT',
16013            lastDay: '[Itolo nga] LT',
16014            lastWeek: 'dddd [leliphelile] [nga] LT',
16015            sameElse: 'L',
16016        },
16017        relativeTime: {
16018            future: 'nga %s',
16019            past: 'wenteka nga %s',
16020            s: 'emizuzwana lomcane',
16021            ss: '%d mzuzwana',
16022            m: 'umzuzu',
16023            mm: '%d emizuzu',
16024            h: 'lihora',
16025            hh: '%d emahora',
16026            d: 'lilanga',
16027            dd: '%d emalanga',
16028            M: 'inyanga',
16029            MM: '%d tinyanga',
16030            y: 'umnyaka',
16031            yy: '%d iminyaka',
16032        },
16033        meridiemParse: /ekuseni|emini|entsambama|ebusuku/,
16034        meridiem: function (hours, minutes, isLower) {
16035            if (hours < 11) {
16036                return 'ekuseni';
16037            } else if (hours < 15) {
16038                return 'emini';
16039            } else if (hours < 19) {
16040                return 'entsambama';
16041            } else {
16042                return 'ebusuku';
16043            }
16044        },
16045        meridiemHour: function (hour, meridiem) {
16046            if (hour === 12) {
16047                hour = 0;
16048            }
16049            if (meridiem === 'ekuseni') {
16050                return hour;
16051            } else if (meridiem === 'emini') {
16052                return hour >= 11 ? hour : hour + 12;
16053            } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {
16054                if (hour === 0) {
16055                    return 0;
16056                }
16057                return hour + 12;
16058            }
16059        },
16060        dayOfMonthOrdinalParse: /\d{1,2}/,
16061        ordinal: '%d',
16062        week: {
16063            dow: 1, // Monday is the first day of the week.
16064            doy: 4, // The week that contains Jan 4th is the first week of the year.
16065        },
16066    });
16067
16068    //! moment.js locale configuration
16069
16070    hooks.defineLocale('sv', {
16071        months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(
16072            '_'
16073        ),
16074        monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),
16075        weekdays: 'söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),
16076        weekdaysShort: 'sön_mån_tis_ons_tor_fre_lör'.split('_'),
16077        weekdaysMin: 'sö_må_ti_on_to_fr_lö'.split('_'),
16078        longDateFormat: {
16079            LT: 'HH:mm',
16080            LTS: 'HH:mm:ss',
16081            L: 'YYYY-MM-DD',
16082            LL: 'D MMMM YYYY',
16083            LLL: 'D MMMM YYYY [kl.] HH:mm',
16084            LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',
16085            lll: 'D MMM YYYY HH:mm',
16086            llll: 'ddd D MMM YYYY HH:mm',
16087        },
16088        calendar: {
16089            sameDay: '[Idag] LT',
16090            nextDay: '[Imorgon] LT',
16091            lastDay: '[Igår] LT',
16092            nextWeek: '[PÃ¥] dddd LT',
16093            lastWeek: '[I] dddd[s] LT',
16094            sameElse: 'L',
16095        },
16096        relativeTime: {
16097            future: 'om %s',
16098            past: 'för %s sedan',
16099            s: 'några sekunder',
16100            ss: '%d sekunder',
16101            m: 'en minut',
16102            mm: '%d minuter',
16103            h: 'en timme',
16104            hh: '%d timmar',
16105            d: 'en dag',
16106            dd: '%d dagar',
16107            M: 'en månad',
16108            MM: '%d månader',
16109            y: 'ett år',
16110            yy: '%d år',
16111        },
16112        dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/,
16113        ordinal: function (number) {
16114            var b = number % 10,
16115                output =
16116                    ~~((number % 100) / 10) === 1
16117                        ? ':e'
16118                        : b === 1
16119                        ? ':a'
16120                        : b === 2
16121                        ? ':a'
16122                        : b === 3
16123                        ? ':e'
16124                        : ':e';
16125            return number + output;
16126        },
16127        week: {
16128            dow: 1, // Monday is the first day of the week.
16129            doy: 4, // The week that contains Jan 4th is the first week of the year.
16130        },
16131    });
16132
16133    //! moment.js locale configuration
16134
16135    hooks.defineLocale('sw', {
16136        months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(
16137            '_'
16138        ),
16139        monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),
16140        weekdays:
16141            'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(
16142                '_'
16143            ),
16144        weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),
16145        weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),
16146        weekdaysParseExact: true,
16147        longDateFormat: {
16148            LT: 'hh:mm A',
16149            LTS: 'HH:mm:ss',
16150            L: 'DD.MM.YYYY',
16151            LL: 'D MMMM YYYY',
16152            LLL: 'D MMMM YYYY HH:mm',
16153            LLLL: 'dddd, D MMMM YYYY HH:mm',
16154        },
16155        calendar: {
16156            sameDay: '[leo saa] LT',
16157            nextDay: '[kesho saa] LT',
16158            nextWeek: '[wiki ijayo] dddd [saat] LT',
16159            lastDay: '[jana] LT',
16160            lastWeek: '[wiki iliyopita] dddd [saat] LT',
16161            sameElse: 'L',
16162        },
16163        relativeTime: {
16164            future: '%s baadaye',
16165            past: 'tokea %s',
16166            s: 'hivi punde',
16167            ss: 'sekunde %d',
16168            m: 'dakika moja',
16169            mm: 'dakika %d',
16170            h: 'saa limoja',
16171            hh: 'masaa %d',
16172            d: 'siku moja',
16173            dd: 'siku %d',
16174            M: 'mwezi mmoja',
16175            MM: 'miezi %d',
16176            y: 'mwaka mmoja',
16177            yy: 'miaka %d',
16178        },
16179        week: {
16180            dow: 1, // Monday is the first day of the week.
16181            doy: 7, // The week that contains Jan 7th is the first week of the year.
16182        },
16183    });
16184
16185    //! moment.js locale configuration
16186
16187    var symbolMap$g = {
16188            1: '௧',
16189            2: '௨',
16190            3: '௩',
16191            4: '௪',
16192            5: '௫',
16193            6: '௬',
16194            7: '௭',
16195            8: '௮',
16196            9: '௯',
16197            0: '௦',
16198        },
16199        numberMap$f = {
16200            '௧': '1',
16201            '௨': '2',
16202            '௩': '3',
16203            '௪': '4',
16204            '௫': '5',
16205            '௬': '6',
16206            '௭': '7',
16207            '௮': '8',
16208            '௯': '9',
16209            '௦': '0',
16210        };
16211
16212    hooks.defineLocale('ta', {
16213        months: 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்ப
vendor: 14,800 bytes, lines 16213-16586
16213ர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16214            '_'
16215        ),
16216        monthsShort:
16217            'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split(
16218                '_'
16219            ),
16220        weekdays:
16221            'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split(
16222                '_'
16223            ),
16224        weekdaysShort: 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split(
16225            '_'
16226        ),
16227        weekdaysMin: 'ஞா_தி_செ_பு_வி_வெ_ச'.split('_'),
16228        longDateFormat: {
16229            LT: 'HH:mm',
16230            LTS: 'HH:mm:ss',
16231            L: 'DD/MM/YYYY',
16232            LL: 'D MMMM YYYY',
16233            LLL: 'D MMMM YYYY, HH:mm',
16234            LLLL: 'dddd, D MMMM YYYY, HH:mm',
16235        },
16236        calendar: {
16237            sameDay: '[இன்று] LT',
16238            nextDay: '[நாளை] LT',
16239            nextWeek: 'dddd, LT',
16240            lastDay: '[நேற்று] LT',
16241            lastWeek: '[கடந்த வாரம்] dddd, LT',
16242            sameElse: 'L',
16243        },
16244        relativeTime: {
16245            future: '%s இல்',
16246            past: '%s முன்',
16247            s: 'ஒரு சில விநாடிகள்',
16248            ss: '%d விநாடிகள்',
16249            m: 'ஒரு நிமிடம்',
16250            mm: '%d நிமிடங்கள்',
16251            h: 'ஒரு மணி நேரம்',
16252            hh: '%d மணி நேரம்',
16253            d: 'ஒரு நாள்',
16254            dd: '%d நாட்கள்',
16255            M: 'ஒரு மாதம்',
16256            MM: '%d மாதங்கள்',
16257            y: 'ஒரு வருடம்',
16258            yy: '%d ஆண்டுகள்',
16259        },
16260        dayOfMonthOrdinalParse: /\d{1,2}வது/,
16261        ordinal: function (number) {
16262            return number + 'வது';
16263        },
16264        preparse: function (string) {
16265            return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
16266                return numberMap$f[match];
16267            });
16268        },
16269        postformat: function (string) {
16270            return string.replace(/\d/g, function (match) {
16271                return symbolMap$g[match];
16272            });
16273        },
16274        // refer http://ta.wikipedia.org/s/1er1
16275        meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
16276        meridiem: function (hour, minute, isLower) {
16277            if (hour < 2) {
16278                return ' யாமம்';
16279            } else if (hour < 6) {
16280                return ' வைகறை'; // வைகறை
16281            } else if (hour < 10) {
16282                return ' காலை'; // காலை
16283            } else if (hour < 14) {
16284                return ' நண்பகல்'; // நண்பகல்
16285            } else if (hour < 18) {
16286                return ' எற்பாடு'; // எற்பாடு
16287            } else if (hour < 22) {
16288                return ' மாலை'; // மாலை
16289            } else {
16290                return ' யாமம்';
16291            }
16292        },
16293        meridiemHour: function (hour, meridiem) {
16294            if (hour === 12) {
16295                hour = 0;
16296            }
16297            if (meridiem === 'யாமம்') {
16298                return hour < 2 ? hour : hour + 12;
16299            } else if (meridiem === 'வைகறை' || meridiem === 'காலை') {
16300                return hour;
16301            } else if (meridiem === 'நண்பகல்') {
16302                return hour >= 10 ? hour : hour + 12;
16303            } else {
16304                return hour + 12;
16305            }
16306        },
16307        week: {
16308            dow: 0, // Sunday is the first day of the week.
16309            doy: 6, // The week that contains Jan 6th is the first week of the year.
16310        },
16311    });
16312
16313    //! moment.js locale configuration
16314
16315    hooks.defineLocale('te', {
16316        months: 'జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జులై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్'.split(
16317            '_'
16318        ),
16319        monthsShort:
16320            'జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జులై_ఆగ._సెప్._అక్టో._నవ._డిసె.'.split(
16321                '_'
16322            ),
16323        monthsParseExact: true,
16324        weekdays:
16325            'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం'.split(
16326                '_'
16327            ),
16328        weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని'.split('_'),
16329        weekdaysMin: 'ఆ_సో_మం_బు_గు_శు_శ'.split('_'),
16330        longDateFormat: {
16331            LT: 'A h:mm',
16332            LTS: 'A h:mm:ss',
16333            L: 'DD/MM/YYYY',
16334            LL: 'D MMMM YYYY',
16335            LLL: 'D MMMM YYYY, A h:mm',
16336            LLLL: 'dddd, D MMMM YYYY, A h:mm',
16337        },
16338        calendar: {
16339            sameDay: '[నేడు] LT',
16340            nextDay: '[రేపు] LT',
16341            nextWeek: 'dddd, LT',
16342            lastDay: '[నిన్న] LT',
16343            lastWeek: '[గత] dddd, LT',
16344            sameElse: 'L',
16345        },
16346        relativeTime: {
16347            future: '%s లో',
16348            past: '%s క్రితం',
16349            s: 'కొన్ని క్షణాలు',
16350            ss: '%d సెకన్లు',
16351            m: 'ఒక నిమిషం',
16352            mm: '%d నిమిషాలు',
16353            h: 'ఒక గంట',
16354            hh: '%d గంటలు',
16355            d: 'ఒక రోజు',
16356            dd: '%d రోజులు',
16357            M: 'ఒక నెల',
16358            MM: '%d నెలలు',
16359            y: 'ఒక సంవత్సరం',
16360            yy: '%d సంవత్సరాలు',
16361        },
16362        dayOfMonthOrdinalParse: /\d{1,2}à°µ/,
16363        ordinal: '%dà°µ',
16364        meridiemParse: /రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,
16365        meridiemHour: function (hour, meridiem) {
16366            if (hour === 12) {
16367                hour = 0;
16368            }
16369            if (meridiem === 'రాత్రి') {
16370                return hour < 4 ? hour : hour + 12;
16371            } else if (meridiem === 'ఉదయం') {
16372                return hour;
16373            } else if (meridiem === 'మధ్యాహ్నం') {
16374                return hour >= 10 ? hour : hour + 12;
16375            } else if (meridiem === 'సాయంత్రం') {
16376                return hour + 12;
16377            }
16378        },
16379        meridiem: function (hour, minute, isLower) {
16380            if (hour < 4) {
16381                return 'రాత్రి';
16382            } else if (hour < 10) {
16383                return 'ఉదయం';
16384            } else if (hour < 17) {
16385                return 'మధ్యాహ్నం';
16386            } else if (hour < 20) {
16387                return 'సాయంత్రం';
16388            } else {
16389                return 'రాత్రి';
16390            }
16391        },
16392        week: {
16393            dow: 0, // Sunday is the first day of the week.
16394            doy: 6, // The week that contains Jan 6th is the first week of the year.
16395        },
16396    });
16397
16398    //! moment.js locale configuration
16399
16400    hooks.defineLocale('tet', {
16401        months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_Juñu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(
16402            '_'
16403        ),
16404        monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),
16405        weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),
16406        weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),
16407        weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),
16408        longDateFormat: {
16409            LT: 'HH:mm',
16410            LTS: 'HH:mm:ss',
16411            L: 'DD/MM/YYYY',
16412            LL: 'D MMMM YYYY',
16413            LLL: 'D MMMM YYYY HH:mm',
16414            LLLL: 'dddd, D MMMM YYYY HH:mm',
16415        },
16416        calendar: {
16417            sameDay: '[Ohin iha] LT',
16418            nextDay: '[Aban iha] LT',
16419            nextWeek: 'dddd [iha] LT',
16420            lastDay: '[Horiseik iha] LT',
16421            lastWeek: 'dddd [semana kotuk] [iha] LT',
16422            sameElse: 'L',
16423        },
16424        relativeTime: {
16425            future: 'iha %s',
16426            past: '%s liuba',
16427            s: 'segundu balun',
16428            ss: 'segundu %d',
16429            m: 'minutu ida',
16430            mm: 'minutu %d',
16431            h: 'oras ida',
16432            hh: 'oras %d',
16433            d: 'loron ida',
16434            dd: 'loron %d',
16435            M: 'fulan ida',
16436            MM: 'fulan %d',
16437            y: 'tinan ida',
16438            yy: 'tinan %d',
16439        },
16440        dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/,
16441        ordinal: function (number) {
16442            var b = number % 10,
16443                output =
16444                    ~~((number % 100) / 10) === 1
16445                        ? 'th'
16446                        : b === 1
16447                        ? 'st'
16448                        : b === 2
16449                        ? 'nd'
16450                        : b === 3
16451                        ? 'rd'
16452                        : 'th';
16453            return number + output;
16454        },
16455        week: {
16456            dow: 1, // Monday is the first day of the week.
16457            doy: 4, // The week that contains Jan 4th is the first week of the year.
16458        },
16459    });
16460
16461    //! moment.js locale configuration
16462
16463    var suffixes$3 = {
16464        0: '-ум',
16465        1: '-ум',
16466        2: '-юм',
16467        3: '-юм',
16468        4: '-ум',
16469        5: '-ум',
16470        6: '-ум',
16471        7: '-ум',
16472        8: '-ум',
16473        9: '-ум',
16474        10: '-ум',
16475        12: '-ум',
16476        13: '-ум',
16477        20: '-ум',
16478        30: '-юм',
16479        40: '-ум',
16480        50: '-ум',
16481        60: '-ум',
16482        70: '-ум',
16483        80: '-ум',
16484        90: '-ум',
16485        100: '-ум',
16486    };
16487
16488    hooks.defineLocale('tg', {
16489        months: {
16490            format: 'январи_феврали_марти_апрели_майи_июни_июли_августи_сентябри_октябри_ноябри_декабри'.split(
16491                '_'
16492            ),
16493            standalone:
16494                'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
16495                    '_'
16496                ),
16497        },
16498        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
16499        weekdays: 'якшанбе_душанбе_сешанбе_чоршанбе_панҷшанбе_ҷумъа_шанбе'.split(
16500            '_'
16501        ),
16502        weekdaysShort: 'яшб_дшб_сшб_чшб_пшб_ҷум_шнб'.split('_'),
16503        weekdaysMin: 'яш_дш_сш_чш_пш_ҷм_шб'.split('_'),
16504        longDateFormat: {
16505            LT: 'HH:mm',
16506            LTS: 'HH:mm:ss',
16507            L: 'DD.MM.YYYY',
16508            LL: 'D MMMM YYYY',
16509            LLL: 'D MMMM YYYY HH:mm',
16510            LLLL: 'dddd, D MMMM YYYY HH:mm',
16511        },
16512        calendar: {
16513            sameDay: '[Имрӯз соати] LT',
16514            nextDay: '[Фардо соати] LT',
16515            lastDay: '[Дирӯз соати] LT',
16516            nextWeek: 'dddd[и] [ҳафтаи оянда соати] LT',
16517            lastWeek: 'dddd[и] [ҳафтаи гузашта соати] LT',
16518            sameElse: 'L',
16519        },
16520        relativeTime: {
16521            future: 'баъди %s',
16522            past: '%s пеш',
16523            s: 'якчанд сония',
16524            m: 'як дақиқа',
16525            mm: '%d дақиқа',
16526            h: 'як соат',
16527            hh: '%d соат',
16528            d: 'як рӯз',
16529            dd: '%d рӯз',
16530            M: 'як моҳ',
16531            MM: '%d моҳ',
16532            y: 'як сол',
16533            yy: '%d сол',
16534        },
16535        meridiemParse: /шаб|субҳ|рӯз|бегоҳ/,
16536        meridiemHour: function (hour, meridiem) {
16537            if (hour === 12) {
16538                hour = 0;
16539            }
16540            if (meridiem === 'шаб') {
16541                return hour < 4 ? hour : hour + 12;
16542            } else if (meridiem === 'субҳ') {
16543                return hour;
16544            } else if (meridiem === 'рӯз') {
16545                return hour >= 11 ? hour : hour + 12;
16546            } else if (meridiem === 'бегоҳ') {
16547                return hour + 12;
16548            }
16549        },
16550        meridiem: function (hour, minute, isLower) {
16551            if (hour < 4) {
16552                return 'шаб';
16553            } else if (hour < 11) {
16554                return 'субҳ';
16555            } else if (hour < 16) {
16556                return 'рӯз';
16557            } else if (hour < 19) {
16558                return 'бегоҳ';
16559            } else {
16560                return 'шаб';
16561            }
16562        },
16563        dayOfMonthOrdinalParse: /\d{1,2}-(ум|юм)/,
16564        ordinal: function (number) {
16565            var a = number % 10,
16566                b = number >= 100 ? 100 : null;
16567            return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);
16568        },
16569        week: {
16570            dow: 1, // Monday is the first day of the week.
16571            doy: 7, // The week that contains Jan 1th is the first week of the year.
16572        },
16573    });
16574
16575    //! moment.js locale configuration
16576
16577    hooks.defineLocale('th', {
16578        months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split(
16579            '_'
16580        ),
16581        monthsShort:
16582            'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split(
16583                '_'
16584            ),
16585        monthsParseExact: true,
16586        weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.
vendor: 6,144 bytes, lines 16586-16763
16586split('_'),
16587        weekdaysShort: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์'.split('_'), // yes, three characters difference
16588        weekdaysMin: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),
16589        weekdaysParseExact: true,
16590        longDateFormat: {
16591            LT: 'H:mm',
16592            LTS: 'H:mm:ss',
16593            L: 'DD/MM/YYYY',
16594            LL: 'D MMMM YYYY',
16595            LLL: 'D MMMM YYYY เวลา H:mm',
16596            LLLL: 'วันddddที่ D MMMM YYYY เวลา H:mm',
16597        },
16598        meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
16599        isPM: function (input) {
16600            return input === 'หลังเที่ยง';
16601        },
16602        meridiem: function (hour, minute, isLower) {
16603            if (hour < 12) {
16604                return 'ก่อนเที่ยง';
16605            } else {
16606                return 'หลังเที่ยง';
16607            }
16608        },
16609        calendar: {
16610            sameDay: '[วันนี้ เวลา] LT',
16611            nextDay: '[พรุ่งนี้ เวลา] LT',
16612            nextWeek: 'dddd[หน้า เวลา] LT',
16613            lastDay: '[เมื่อวานนี้ เวลา] LT',
16614            lastWeek: '[วัน]dddd[ที่แล้ว เวลา] LT',
16615            sameElse: 'L',
16616        },
16617        relativeTime: {
16618            future: 'อีก %s',
16619            past: '%sที่แล้ว',
16620            s: 'ไม่กี่วินาที',
16621            ss: '%d วินาที',
16622            m: '1 นาที',
16623            mm: '%d นาที',
16624            h: '1 ชั่วโมง',
16625            hh: '%d ชั่วโมง',
16626            d: '1 วัน',
16627            dd: '%d วัน',
16628            w: '1 สัปดาห์',
16629            ww: '%d สัปดาห์',
16630            M: '1 เดือน',
16631            MM: '%d เดือน',
16632            y: '1 ปี',
16633            yy: '%d ปี',
16634        },
16635    });
16636
16637    //! moment.js locale configuration
16638
16639    var suffixes$4 = {
16640        1: "'inji",
16641        5: "'inji",
16642        8: "'inji",
16643        70: "'inji",
16644        80: "'inji",
16645        2: "'nji",
16646        7: "'nji",
16647        20: "'nji",
16648        50: "'nji",
16649        3: "'ünji",
16650        4: "'ünji",
16651        100: "'ünji",
16652        6: "'njy",
16653        9: "'unjy",
16654        10: "'unjy",
16655        30: "'unjy",
16656        60: "'ynjy",
16657        90: "'ynjy",
16658    };
16659
16660    hooks.defineLocale('tk', {
16661        months: 'Ýanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(
16662            '_'
16663        ),
16664        monthsShort: 'Ýan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),
16665        weekdays: 'Ýekşenbe_Duşenbe_Sişenbe_Çarşenbe_Penşenbe_Anna_Şenbe'.split(
16666            '_'
16667        ),
16668        weekdaysShort: 'Ýek_Duş_Siş_Çar_Pen_Ann_Şen'.split('_'),
16669        weekdaysMin: 'Ýk_Dş_Sş_Çr_Pn_An_Şn'.split('_'),
16670        longDateFormat: {
16671            LT: 'HH:mm',
16672            LTS: 'HH:mm:ss',
16673            L: 'DD.MM.YYYY',
16674            LL: 'D MMMM YYYY',
16675            LLL: 'D MMMM YYYY HH:mm',
16676            LLLL: 'dddd, D MMMM YYYY HH:mm',
16677        },
16678        calendar: {
16679            sameDay: '[bugün sagat] LT',
16680            nextDay: '[ertir sagat] LT',
16681            nextWeek: '[indiki] dddd [sagat] LT',
16682            lastDay: '[düýn] LT',
16683            lastWeek: '[geçen] dddd [sagat] LT',
16684            sameElse: 'L',
16685        },
16686        relativeTime: {
16687            future: '%s soň',
16688            past: '%s öň',
16689            s: 'birnäçe sekunt',
16690            m: 'bir minut',
16691            mm: '%d minut',
16692            h: 'bir sagat',
16693            hh: '%d sagat',
16694            d: 'bir gün',
16695            dd: '%d gün',
16696            M: 'bir aý',
16697            MM: '%d aý',
16698            y: 'bir ýyl',
16699            yy: '%d ýyl',
16700        },
16701        ordinal: function (number, period) {
16702            switch (period) {
16703                case 'd':
16704                case 'D':
16705                case 'Do':
16706                case 'DD':
16707                    return number;
16708                default:
16709                    if (number === 0) {
16710                        // special case for zero
16711                        return number + "'unjy";
16712                    }
16713                    var a = number % 10,
16714                        b = (number % 100) - a,
16715                        c = number >= 100 ? 100 : null;
16716                    return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);
16717            }
16718        },
16719        week: {
16720            dow: 1, // Monday is the first day of the week.
16721            doy: 7, // The week that contains Jan 7th is the first week of the year.
16722        },
16723    });
16724
16725    //! moment.js locale configuration
16726
16727    hooks.defineLocale('tl-ph', {
16728        months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(
16729            '_'
16730        ),
16731        monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),
16732        weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(
16733            '_'
16734        ),
16735        weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),
16736        weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),
16737        longDateFormat: {
16738            LT: 'HH:mm',
16739            LTS: 'HH:mm:ss',
16740            L: 'MM/D/YYYY',
16741            LL: 'MMMM D, YYYY',
16742            LLL: 'MMMM D, YYYY HH:mm',
16743            LLLL: 'dddd, MMMM DD, YYYY HH:mm',
16744        },
16745        calendar: {
16746            sameDay: 'LT [ngayong araw]',
16747            nextDay: '[Bukas ng] LT',
16748            nextWeek: 'LT [sa susunod na] dddd',
16749            lastDay: 'LT [kahapon]',
16750            lastWeek: 'LT [noong nakaraang] dddd',
16751            sameElse: 'L',
16752        },
16753        relativeTime: {
16754            future: 'sa loob ng %s',
16755            past: '%s ang nakalipas',
16756            s: 'ilang segundo',
16757            ss: '%d segundo',
16758            m: 'isang minuto',
16759            mm: '%d minuto',
16760            h: 'isang oras',
16761            hh: '%d oras',
16762            d: 'isang araw',
16763            dd: '%d araw',
16764            M: 'isang buwan',
16765            MM: '%d buwan',
16766            y: 'isang taon',
16767            yy: '%d taon',
16768        },
16769        dayOfMonthOrdinalParse: /\d{1,2}/,
16770        ordinal: function (number) {
16771            return number;
16772        },
16773        week: {
16774            dow: 1, // Monday is the first day of the week.
16775            doy: 4, // The week that contains Jan 4th is the first week of the year.
16776        },
16777    });
16778
16779    //! moment.js locale configuration
16780
16781    var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
16782
16783    function translateFuture(output) {
16784        var time = output;
16785        time =
16786            output.indexOf('jaj') !== -1
16787                ? time.slice(0, -3) + 'leS'
16788                : output.indexOf('jar') !== -1
16789                ? time.slice(0, -3) + 'waQ'
16790                : output.indexOf('DIS') !== -1
16791                ? time.slice(0, -3) + 'nem'
16792                : time + ' pIq';
16793        return time;
16794    }
16795
16796    function translatePast(output) {
16797        var time = output;
16798        time =
16799            output.indexOf('jaj') !== -1
16800                ? time.slice(0, -3) + 'Hu’'
16801                : output.indexOf('jar') !== -1
16802                ? time.slice(0, -3) + 'wen'
16803                : output.indexOf('DIS') !== -1
16804                ? time.slice(0, -3) + 'ben'
16805                : time + ' ret';
16806        return time;
16807    }
16808
16809    function translate$a(number, withoutSuffix, string, isFuture) {
16810        var numberNoun = numberAsNoun(number);
16811        switch (string) {
16812            case 'ss':
16813                return numberNoun + ' lup';
16814            case 'mm':
16815                return numberNoun + ' tup';
16816            case 'hh':
16817                return numberNoun + ' rep';
16818            case 'dd':
16819                return numberNoun + ' jaj';
16820            case 'MM':
16821                return numberNoun + ' jar';
16822            case 'yy':
16823                return numberNoun + ' DIS';
16824        }
16825    }
16826
16827    function numberAsNoun(number) {
16828        var hundred = Math.floor((number % 1000) / 100),
16829            ten = Math.floor((number % 100) / 10),
16830            one = number % 10,
16831            word = '';
16832        if (hundred > 0) {
16833            word += numbersNouns[hundred] + 'vatlh';
16834        }
16835        if (ten > 0) {
16836            word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
16837        }
16838        if (one > 0) {
16839            word += (word !== '' ? ' ' : '') + numbersNouns[one];
16840        }
16841        return word === '' ? 'pagh' : word;
16842    }
16843
16844    hooks.defineLocale('tlh', {
16845        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(
16846            '_'
16847        ),
16848        monthsShort:
16849            '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(
16850                '_'
16851            ),
16852        monthsParseExact: true,
16853        weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
16854            '_'
16855        ),
16856        weekdaysShort:
16857            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
16858        weekdaysMin:
16859            'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
16860        longDateFormat: {
16861            LT: 'HH:mm',
16862            LTS: 'HH:mm:ss',
16863            L: 'DD.MM.YYYY',
16864            LL: 'D MMMM YYYY',
16865            LLL: 'D MMMM YYYY HH:mm',
16866            LLLL: 'dddd, D MMMM YYYY HH:mm',
16867        },
16868        calendar: {
16869            sameDay: '[DaHjaj] LT',
16870            nextDay: '[wa’leS] LT',
16871            nextWeek: 'LLL',
16872            lastDay: '[wa’Hu’] LT',
16873            lastWeek: 'LLL',
16874            sameElse: 'L',
16875        },
16876        relativeTime: {
16877            future: translateFuture,
16878            past: translatePast,
16879            s: 'puS lup',
16880            ss: translate$a,
16881            m: 'wa’ tup',
16882            mm: translate$a,
16883            h: 'wa’ rep',
16884            hh: translate$a,
16885            d: 'wa’ jaj',
16886            dd: translate$a,
16887            M: 'wa’ jar',
16888            MM: translate$a,
16889            y: 'wa’ DIS',
16890            yy: translate$a,
16891        },
16892        dayOfMonthOrdinalParse: /\d{1,2}\./,
16893        ordinal: '%d.',
16894        week: {
16895            dow: 1, // Monday is the first day of the week.
16896            doy: 4, // The week that contains Jan 4th is the first week of the year.
16897        },
16898    });
16899
16900    //! moment.js locale configuration
16901
16902    var suffixes$5 = {
16903        1: "'inci",
16904        5: "'inci",
16905        8: "'inci",
16906        70: "'inci",
16907        80: "'inci",
16908        2: "'nci",
16909        7: "'nci",
16910        20: "'nci",
16911        50: "'nci",
16912        3: "'üncü",
16913        4: "'üncü",
16914        100: "'üncü",
16915        6: "'ncı",
16916        9: "'uncu",
16917        10: "'uncu",
16918        30: "'uncu",
16919        60: "'ıncı",
16920        90: "'ıncı",
16921    };
16922
16923    hooks.defineLocale('tr', {
16924        months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(
16925            '_'
16926        ),
16927        monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),
16928        weekdays: 'Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi'.split(
16929            '_'
16930        ),
16931        weekdaysShort: 'Paz_Pzt_Sal_Çar_Per_Cum_Cmt'.split('_'),
16932        weekdaysMin: 'Pz_Pt_Sa_Ça_Pe_Cu_Ct'.split('_'),
16933        meridiem: function (hours, minutes, isLower) {
16934            if (hours < 12) {
16935                return isLower ? 'öö' : 'ÖÖ';
16936            } else {
16937                return isLower ? 'ös' : 'ÖS';
16938            }
16939        },
16940        meridiemParse: /öö|ÖÖ|ös|ÖS/,
16941        isPM: function (input) {
16942            return input === 'ös' || input === 'ÖS';
16943        },
16944        longDateFormat: {
16945            LT: 'HH:mm',
16946            LTS: 'HH:mm:ss',
16947            L: 'DD.MM.YYYY',
16948            LL: 'D MMMM YYYY',
16949            LLL: 'D MMMM YYYY HH:mm',
16950            LLLL: 'dddd, D MMMM YYYY HH:mm',
16951        },
16952        calendar: {
16953            sameDay: '[bugün saat] LT',
16954            nextDay: '[yarın saat] LT',
16955            nextWeek: '[gelecek] dddd [saat] LT',
16956            lastDay: '[dün] LT',
16957            lastWeek: '[geçen] dddd [saat] LT',
16958            sameElse: 'L',
16959        },
16960        relativeTime: {
16961            future: '%s sonra',
16962            past: '%s önce',
16963            s: 'birkaç saniye',
16964            ss: '%d saniye',
16965            m: 'bir dakika',
16966            mm: '%d dakika',
16967            h: 'bir saat',
16968            hh: '%d saat',
16969            d: 'bir gün',
16970            dd: '%d gün',
16971            w: 'bir hafta',
16972            ww: '%d hafta',
16973            M: 'bir ay',
16974            MM: '%d ay',
16975            y: 'bir yıl',
16976            yy: '%d yıl',
16977        },
16978        ordinal: function (number, period) {
16979            switch (period) {
16980                case 'd':
16981                case 'D':
16982                case 'Do':
16983                case 'DD':
16984                    return number;
16985                default:
16986                    if (number === 0) {
16987                        // special case for zero
16988                        return number + "'ıncı";
16989                    }
16990                    var a = number % 10,
16991                        b = (number % 100) - a,
16992                        c = number >= 100 ? 100 : null;
16993                    return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);
16994            }
16995        },
16996        week: {
16997            dow: 1, // Monday is the first day of the week.
16998            doy: 7, // The week that contains Jan 7th is the first week of the year.
16999        },
17000    });
17001
17002    //! moment.js locale configuration
17003
17004    // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.
17005    // This is currently too difficult (maybe even impossible) to add.
17006    hooks.defineLocale('tzl', {
17007        months: 'Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar'.split(
17008            '_'
17009        ),
17010        monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),
17011        weekdays: 'Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi'.split('_'),
17012        weekdaysShort: 'Súl_Lún_Mai_Már_Xhú_Vié_Sát'.split('_'),
17013        weekdaysMin: 'Sú_Lú_Ma_Má_Xh_Vi_Sá'.split('_'),
17014        longDateFormat: {
17015            LT: 'HH.mm',
17016            LTS: 'HH.mm.ss',
17017            L: 'DD.MM.YYYY',
17018            LL: 'D. MMMM [dallas] YYYY',
17019            LLL: 'D. MMMM [dallas] YYYY HH.mm',
17020            LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',
17021        },
17022        meridiemParse: /d\'o|d\'a/i,
17023        isPM: function (input) {
17024            return "d'o" === input.toLowerCase();
17025        },
17026        meridiem: function (hours, minutes, isLower) {
17027            if (hours > 11) {
17028                return isLower ? "d'o" : "D'O";
17029            } else {
17030                return isLower ? "d'a" : "D'A";
17031            }
17032        },
17033        calendar: {
vendor: 2,018 bytes, lines 17034-17089
17034            sameDay: '[oxhi à] LT',
17035            nextDay: '[demà à] LT',
17036            nextWeek: 'dddd [à] LT',
17037            lastDay: '[ieiri à] LT',
17038            lastWeek: '[sür el] dddd [lasteu à] LT',
17039            sameElse: 'L',
17040        },
17041        relativeTime: {
17042            future: 'osprei %s',
17043            past: 'ja%s',
17044            s: processRelativeTime$8,
17045            ss: processRelativeTime$8,
17046            m: processRelativeTime$8,
17047            mm: processRelativeTime$8,
17048            h: processRelativeTime$8,
17049            hh: processRelativeTime$8,
17050            d: processRelativeTime$8,
17051            dd: processRelativeTime$8,
17052            M: processRelativeTime$8,
17053            MM: processRelativeTime$8,
17054            y: processRelativeTime$8,
17055            yy: processRelativeTime$8,
17056        },
17057        dayOfMonthOrdinalParse: /\d{1,2}\./,
17058        ordinal: '%d.',
17059        week: {
17060            dow: 1, // Monday is the first day of the week.
17061            doy: 4, // The week that contains Jan 4th is the first week of the year.
17062        },
17063    });
17064
17065    function processRelativeTime$8(number, withoutSuffix, key, isFuture) {
17066        var format = {
17067            s: ['viensas secunds', "'iensas secunds"],
17068            ss: [number + ' secunds', '' + number + ' secunds'],
17069            m: ["'n míut", "'iens míut"],
17070            mm: [number + ' míuts', '' + number + ' míuts'],
17071            h: ["'n þora", "'iensa þora"],
17072            hh: [number + ' þoras', '' + number + ' þoras'],
17073            d: ["'n ziua", "'iensa ziua"],
17074            dd: [number + ' ziuas', '' + number + ' ziuas'],
17075            M: ["'n mes", "'iens mes"],
17076            MM: [number + ' mesen', '' + number + ' mesen'],
17077            y: ["'n ar", "'iens ar"],
17078            yy: [number + ' ars', '' + number + ' ars'],
17079        };
17080        return isFuture
17081            ? format[key][0]
17082            : withoutSuffix
17083            ? format[key][0]
17084            : format[key][1];
17085    }
17086
17087    //! moment.js locale configuration
17088
17089    hooks.defineLocale('tzm-latn', {
17090        months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
17091            '_'
17092        ),
17093        monthsShort:
17094            'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(
17095                '_'
17096            ),
17097        weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17098        weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17099        weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas'.split('_'),
17100        longDateFormat: {
17101            LT: 'HH:mm',
17102            LTS: 'HH:mm:ss',
17103            L: 'DD/MM/YYYY',
17104            LL: 'D MMMM YYYY',
17105            LLL: 'D MMMM YYYY HH:mm',
17106            LLLL: 'dddd D MMMM YYYY HH:mm',
17107        },
17108        calendar: {
17109            sameDay: '[asdkh g] LT',
17110            nextDay: '[aska g] LT',
17111            nextWeek: 'dddd [g] LT',
17112            lastDay: '[assant g] LT',
17113            lastWeek: 'dddd [g] LT',
17114            sameElse: 'L',
17115        },
17116        relativeTime: {
17117            future: 'dadkh s yan %s',
17118            past: 'yan %s',
17119            s: 'imik',
17120            ss: '%d imik',
17121            m: 'minuḍ',
17122            mm: '%d minuḍ',
17123            h: 'saɛa',
17124            hh: '%d tassaɛin',
17125            d: 'ass',
17126            dd: '%d ossan',
17127            M: 'ayowr',
17128            MM: '%d iyyirn',
17129            y: 'asgas',
17130            yy: '%d isgasn',
17131        },
17132        week: {
17133            dow: 6, // Saturday is the first day of the week.
17134            doy: 12, // The week that contains Jan 12th is the first week of the year.
17135        },
17136    });
17137
17138    //! moment.js locale configuration
17139
17140    hooks.defineLocale('tzm', {
17141        months: 'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
17142            '_'
17143        ),
17144        monthsShort:
17145            'ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ'.split(
17146                '_'
17147            ),
17148        weekdays: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17149        weekdaysShort: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17150        weekdaysMin: 'ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ'.split('_'),
17151        longDateFormat: {
17152            LT: 'HH:mm',
17153            LTS: 'HH:mm:ss',
17154            L: 'DD/MM/YYYY',
17155            LL: 'D MMMM YYYY',
17156            LLL: 'D MMMM YYYY HH:mm',
17157            LLLL: 'dddd D MMMM YYYY HH:mm',
17158        },
17159        calendar: {
17160            sameDay: '[ⴰⵙⴷⵅ ⴴ] LT',
17161            nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
17162            nextWeek: 'dddd [â´´] LT',
17163            lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
17164            lastWeek: 'dddd [â´´] LT',
17165            sameElse: 'L',
17166        },
17167        relativeTime: {
17168            future: 'ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s',
17169            past: 'ⵢⴰⵏ %s',
17170            s: 'ⵉⵎⵉⴽ',
17171            ss: '%d ⵉⵎⵉⴽ',
17172            m: 'ⵎⵉⵏⵓⴺ',
17173            mm: '%d ⵎⵉⵏⵓⴺ',
17174            h: 'ⵙⴰⵄⴰ',
vendor: 5,781 bytes, lines 17175-17320
17175            hh: '%d ⵜⴰⵙⵙⴰⵄⵉⵏ',
17176            d: 'ⴰⵙⵙ',
17177            dd: '%d oⵙⵙⴰⵏ',
17178            M: 'ⴰⵢoⵓⵔ',
17179            MM: '%d ⵉⵢⵢⵉⵔⵏ',
17180            y: 'ⴰⵙⴳⴰⵙ',
17181            yy: '%d ⵉⵙⴳⴰⵙⵏ',
17182        },
17183        week: {
17184            dow: 6, // Saturday is the first day of the week.
17185            doy: 12, // The week that contains Jan 12th is the first week of the year.
17186        },
17187    });
17188
17189    //! moment.js locale configuration
17190
17191    hooks.defineLocale('ug-cn', {
17192        months: 'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17193            '_'
17194        ),
17195        monthsShort:
17196            'يانۋار_فېۋرال_مارت_ئاپرېل_ماي_ئىيۇن_ئىيۇل_ئاۋغۇست_سېنتەبىر_ئۆكتەبىر_نويابىر_دېكابىر'.split(
17197                '_'
17198            ),
17199        weekdays: 'يەكشەنبە_دۈشەنبە_سەيشەنبە_چارشەنبە_پەيشەنبە_جۈمە_شەنبە'.split(
17200            '_'
17201        ),
17202        weekdaysShort: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17203        weekdaysMin: 'يە_دۈ_سە_چا_پە_جۈ_شە'.split('_'),
17204        longDateFormat: {
17205            LT: 'HH:mm',
17206            LTS: 'HH:mm:ss',
17207            L: 'YYYY-MM-DD',
17208            LL: 'YYYY-يىلىM-ئاينىڭD-كۈنى',
17209            LLL: 'YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17210            LLLL: 'dddd، YYYY-يىلىM-ئاينىڭD-كۈنى، HH:mm',
17211        },
17212        meridiemParse: /يېرىم كېچە|سەھەر|چۈشتىن بۇرۇن|چۈش|چۈشتىن كېيىن|كەچ/,
17213        meridiemHour: function (hour, meridiem) {
17214            if (hour === 12) {
17215                hour = 0;
17216            }
17217            if (
17218                meridiem === 'يېرىم كېچە' ||
17219                meridiem === 'سەھەر' ||
17220                meridiem === 'چۈشتىن بۇرۇن'
17221            ) {
17222                return hour;
17223            } else if (meridiem === 'چۈشتىن كېيىن' || meridiem === 'كەچ') {
17224                return hour + 12;
17225            } else {
17226                return hour >= 11 ? hour : hour + 12;
17227            }
17228        },
17229        meridiem: function (hour, minute, isLower) {
17230            var hm = hour * 100 + minute;
17231            if (hm < 600) {
17232                return 'يېرىم كېچە';
17233            } else if (hm < 900) {
17234                return 'سەھەر';
17235            } else if (hm < 1130) {
17236                return 'چۈشتىن بۇرۇن';
17237            } else if (hm < 1230) {
17238                return 'چۈش';
17239            } else if (hm < 1800) {
17240                return 'چۈشتىن كېيىن';
17241            } else {
17242                return 'كەچ';
17243            }
17244        },
17245        calendar: {
17246            sameDay: '[بۈگۈن سائەت] LT',
17247            nextDay: '[ئەتە سائەت] LT',
17248            nextWeek: '[كېلەركى] dddd [سائەت] LT',
17249            lastDay: '[تۆنۈگۈن] LT',
17250            lastWeek: '[ئالدىنقى] dddd [سائەت] LT',
17251            sameElse: 'L',
17252        },
17253        relativeTime: {
17254            future: '%s كېيىن',
17255            past: '%s بۇرۇن',
17256            s: 'نەچچە سېكونت',
17257            ss: '%d سېكونت',
17258            m: 'بىر مىنۇت',
17259            mm: '%d مىنۇت',
17260            h: 'بىر سائەت',
17261            hh: '%d سائەت',
17262            d: 'بىر كۈن',
17263            dd: '%d كۈن',
17264            M: 'بىر ئاي',
17265            MM: '%d ئاي',
17266            y: 'بىر يىل',
17267            yy: '%d يىل',
17268        },
17269
17270        dayOfMonthOrdinalParse: /\d{1,2}(-كۈنى|-ئاي|-ھەپتە)/,
17271        ordinal: function (number, period) {
17272            switch (period) {
17273                case 'd':
17274                case 'D':
17275                case 'DDD':
17276                    return number + '-كۈنى';
17277                case 'w':
17278                case 'W':
17279                    return number + '-ھەپتە';
17280                default:
17281                    return number;
17282            }
17283        },
17284        preparse: function (string) {
17285            return string.replace(/،/g, ',');
17286        },
17287        postformat: function (string) {
17288            return string.replace(/,/g, '،');
17289        },
17290        week: {
17291            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17292            dow: 1, // Monday is the first day of the week.
17293            doy: 7, // The week that contains Jan 1st is the first week of the year.
17294        },
17295    });
17296
17297    //! moment.js locale configuration
17298
17299    function plural$6(word, num) {
17300        var forms = word.split('_');
17301        return num % 10 === 1 && num % 100 !== 11
17302            ? forms[0]
17303            : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)
17304            ? forms[1]
17305            : forms[2];
17306    }
17307    function relativeTimeWithPlural$4(number, withoutSuffix, key) {
17308        var format = {
17309            ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',
17310            mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',
17311            hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',
17312            dd: 'день_дні_днів',
17313            MM: 'місяць_місяці_місяців',
17314            yy: 'рік_роки_років',
17315        };
17316        if (key === 'm') {
17317            return withoutSuffix ? 'хвилина' : 'хвилину';
17318        } else if (key === 'h') {
17319            return withoutSuffix ? 'година' : 'годину';
17320        } else {
vendor: 8,953 bytes, lines 17321-17575
17321            return number + ' ' + plural$6(format[key], +number);
17322        }
17323    }
17324    function weekdaysCaseReplace(m, format) {
17325        var weekdays = {
17326                nominative:
17327                    'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split(
17328                        '_'
17329                    ),
17330                accusative:
17331                    'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split(
17332                        '_'
17333                    ),
17334                genitive:
17335                    'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split(
17336                        '_'
17337                    ),
17338            },
17339            nounCase;
17340
17341        if (m === true) {
17342            return weekdays['nominative']
17343                .slice(1, 7)
17344                .concat(weekdays['nominative'].slice(0, 1));
17345        }
17346        if (!m) {
17347            return weekdays['nominative'];
17348        }
17349
17350        nounCase = /(\[[ВвУу]\]) ?dddd/.test(format)
17351            ? 'accusative'
17352            : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(format)
17353            ? 'genitive'
17354            : 'nominative';
17355        return weekdays[nounCase][m.day()];
17356    }
17357    function processHoursFunction(str) {
17358        return function () {
17359            return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
17360        };
17361    }
17362
17363    hooks.defineLocale('uk', {
17364        months: {
17365            format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split(
17366                '_'
17367            ),
17368            standalone:
17369                'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split(
17370                    '_'
17371                ),
17372        },
17373        monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split(
17374            '_'
17375        ),
17376        weekdays: weekdaysCaseReplace,
17377        weekdaysShort: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17378        weekdaysMin: 'нд_пн_вт_ср_чт_пт_сб'.split('_'),
17379        longDateFormat: {
17380            LT: 'HH:mm',
17381            LTS: 'HH:mm:ss',
17382            L: 'DD.MM.YYYY',
17383            LL: 'D MMMM YYYY р.',
17384            LLL: 'D MMMM YYYY р., HH:mm',
17385            LLLL: 'dddd, D MMMM YYYY р., HH:mm',
17386        },
17387        calendar: {
17388            sameDay: processHoursFunction('[Сьогодні '),
17389            nextDay: processHoursFunction('[Завтра '),
17390            lastDay: processHoursFunction('[Вчора '),
17391            nextWeek: processHoursFunction('[У] dddd ['),
17392            lastWeek: function () {
17393                switch (this.day()) {
17394                    case 0:
17395                    case 3:
17396                    case 5:
17397                    case 6:
17398                        return processHoursFunction('[Минулої] dddd [').call(this);
17399                    case 1:
17400                    case 2:
17401                    case 4:
17402                        return processHoursFunction('[Минулого] dddd [').call(this);
17403                }
17404            },
17405            sameElse: 'L',
17406        },
17407        relativeTime: {
17408            future: 'за %s',
17409            past: '%s тому',
17410            s: 'декілька секунд',
17411            ss: relativeTimeWithPlural$4,
17412            m: relativeTimeWithPlural$4,
17413            mm: relativeTimeWithPlural$4,
17414            h: 'годину',
17415            hh: relativeTimeWithPlural$4,
17416            d: 'день',
17417            dd: relativeTimeWithPlural$4,
17418            M: 'місяць',
17419            MM: relativeTimeWithPlural$4,
17420            y: 'рік',
17421            yy: relativeTimeWithPlural$4,
17422        },
17423        // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
17424        meridiemParse: /ночі|ранку|дня|вечора/,
17425        isPM: function (input) {
17426            return /^(дня|вечора)$/.test(input);
17427        },
17428        meridiem: function (hour, minute, isLower) {
17429            if (hour < 4) {
17430                return 'ночі';
17431            } else if (hour < 12) {
17432                return 'ранку';
17433            } else if (hour < 17) {
17434                return 'дня';
17435            } else {
17436                return 'вечора';
17437            }
17438        },
17439        dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/,
17440        ordinal: function (number, period) {
17441            switch (period) {
17442                case 'M':
17443                case 'd':
17444                case 'DDD':
17445                case 'w':
17446                case 'W':
17447                    return number + '-й';
17448                case 'D':
17449                    return number + '-го';
17450                default:
17451                    return number;
17452            }
17453        },
17454        week: {
17455            dow: 1, // Monday is the first day of the week.
17456            doy: 7, // The week that contains Jan 7th is the first week of the year.
17457        },
17458    });
17459
17460    //! moment.js locale configuration
17461
17462    var months$b = [
17463            'جنوری',
17464            'فروری',
17465            'مارچ',
17466            'اپریل',
17467            'مئی',
17468            'جون',
17469            'جولائی',
17470            'اگست',
17471            'ستمبر',
17472            'اکتوبر',
17473            'نومبر',
17474            'دسمبر',
17475        ],
17476        days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];
17477
17478    hooks.defineLocale('ur', {
17479        months: months$b,
17480        monthsShort: months$b,
17481        weekdays: days$2,
17482        weekdaysShort: days$2,
17483        weekdaysMin: days$2,
17484        longDateFormat: {
17485            LT: 'HH:mm',
17486            LTS: 'HH:mm:ss',
17487            L: 'DD/MM/YYYY',
17488            LL: 'D MMMM YYYY',
17489            LLL: 'D MMMM YYYY HH:mm',
17490            LLLL: 'dddd، D MMMM YYYY HH:mm',
17491        },
17492        meridiemParse: /صبح|شام/,
17493        isPM: function (input) {
17494            return 'شام' === input;
17495        },
17496        meridiem: function (hour, minute, isLower) {
17497            if (hour < 12) {
17498                return 'صبح';
17499            }
17500            return 'شام';
17501        },
17502        calendar: {
17503            sameDay: '[آج بوقت] LT',
17504            nextDay: '[کل بوقت] LT',
17505            nextWeek: 'dddd [بوقت] LT',
17506            lastDay: '[گذشتہ روز بوقت] LT',
17507            lastWeek: '[گذشتہ] dddd [بوقت] LT',
17508            sameElse: 'L',
17509        },
17510        relativeTime: {
17511            future: '%s بعد',
17512            past: '%s قبل',
17513            s: 'چند سیکنڈ',
17514            ss: '%d سیکنڈ',
17515            m: 'ایک منٹ',
17516            mm: '%d منٹ',
17517            h: 'ایک گھنٹہ',
17518            hh: '%d گھنٹے',
17519            d: 'ایک دن',
17520            dd: '%d دن',
17521            M: 'ایک ماہ',
17522            MM: '%d ماہ',
17523            y: 'ایک سال',
17524            yy: '%d سال',
17525        },
17526        preparse: function (string) {
17527            return string.replace(/،/g, ',');
17528        },
17529        postformat: function (string) {
17530            return string.replace(/,/g, '،');
17531        },
17532        week: {
17533            dow: 1, // Monday is the first day of the week.
17534            doy: 4, // The week that contains Jan 4th is the first week of the year.
17535        },
17536    });
17537
17538    //! moment.js locale configuration
17539
17540    hooks.defineLocale('uz-latn', {
17541        months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(
17542            '_'
17543        ),
17544        monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),
17545        weekdays:
17546            'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(
17547                '_'
17548            ),
17549        weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),
17550        weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),
17551        longDateFormat: {
17552            LT: 'HH:mm',
17553            LTS: 'HH:mm:ss',
17554            L: 'DD/MM/YYYY',
17555            LL: 'D MMMM YYYY',
17556            LLL: 'D MMMM YYYY HH:mm',
17557            LLLL: 'D MMMM YYYY, dddd HH:mm',
17558        },
17559        calendar: {
17560            sameDay: '[Bugun soat] LT [da]',
17561            nextDay: '[Ertaga] LT [da]',
17562            nextWeek: 'dddd [kuni soat] LT [da]',
17563            lastDay: '[Kecha soat] LT [da]',
17564            lastWeek: "[O'tgan] dddd [kuni soat] LT [da]",
17565            sameElse: 'L',
17566        },
17567        relativeTime: {
17568            future: 'Yaqin %s ichida',
17569            past: 'Bir necha %s oldin',
17570            s: 'soniya',
17571            ss: '%d soniya',
17572            m: 'bir daqiqa',
17573            mm: '%d daqiqa',
17574            h: 'bir soat',
17575            hh: '%d soat',
vendor: 5,209 bytes, lines 17576-17720
17576            d: 'bir kun',
17577            dd: '%d kun',
17578            M: 'bir oy',
17579            MM: '%d oy',
17580            y: 'bir yil',
17581            yy: '%d yil',
17582        },
17583        week: {
17584            dow: 1, // Monday is the first day of the week.
17585            doy: 7, // The week that contains Jan 7th is the first week of the year.
17586        },
17587    });
17588
17589    //! moment.js locale configuration
17590
17591    hooks.defineLocale('uz', {
17592        months: 'январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр'.split(
17593            '_'
17594        ),
17595        monthsShort: 'янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек'.split('_'),
17596        weekdays: 'Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба'.split('_'),
17597        weekdaysShort: 'Якш_Душ_Сеш_Чор_Пай_Жум_Шан'.split('_'),
17598        weekdaysMin: 'Як_Ду_Се_Чо_Па_Жу_Ша'.split('_'),
17599        longDateFormat: {
17600            LT: 'HH:mm',
17601            LTS: 'HH:mm:ss',
17602            L: 'DD/MM/YYYY',
17603            LL: 'D MMMM YYYY',
17604            LLL: 'D MMMM YYYY HH:mm',
17605            LLLL: 'D MMMM YYYY, dddd HH:mm',
17606        },
17607        calendar: {
17608            sameDay: '[Бугун соат] LT [да]',
17609            nextDay: '[Эртага] LT [да]',
17610            nextWeek: 'dddd [куни соат] LT [да]',
17611            lastDay: '[Кеча соат] LT [да]',
17612            lastWeek: '[Утган] dddd [куни соат] LT [да]',
17613            sameElse: 'L',
17614        },
17615        relativeTime: {
17616            future: 'Якин %s ичида',
17617            past: 'Бир неча %s олдин',
17618            s: 'фурсат',
17619            ss: '%d фурсат',
17620            m: 'бир дакика',
17621            mm: '%d дакика',
17622            h: 'бир соат',
17623            hh: '%d соат',
17624            d: 'бир кун',
17625            dd: '%d кун',
17626            M: 'бир ой',
17627            MM: '%d ой',
17628            y: 'бир йил',
17629            yy: '%d йил',
17630        },
17631        week: {
17632            dow: 1, // Monday is the first day of the week.
17633            doy: 7, // The week that contains Jan 4th is the first week of the year.
17634        },
17635    });
17636
17637    //! moment.js locale configuration
17638
17639    hooks.defineLocale('vi', {
17640        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(
17641            '_'
17642        ),
17643        monthsShort:
17644            'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(
17645                '_'
17646            ),
17647        monthsParseExact: true,
17648        weekdays: 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split(
17649            '_'
17650        ),
17651        weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17652        weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),
17653        weekdaysParseExact: true,
17654        meridiemParse: /sa|ch/i,
17655        isPM: function (input) {
17656            return /^ch$/i.test(input);
17657        },
17658        meridiem: function (hours, minutes, isLower) {
17659            if (hours < 12) {
17660                return isLower ? 'sa' : 'SA';
17661            } else {
17662                return isLower ? 'ch' : 'CH';
17663            }
17664        },
17665        longDateFormat: {
17666            LT: 'HH:mm',
17667            LTS: 'HH:mm:ss',
17668            L: 'DD/MM/YYYY',
17669            LL: 'D MMMM [năm] YYYY',
17670            LLL: 'D MMMM [năm] YYYY HH:mm',
17671            LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',
17672            l: 'DD/M/YYYY',
17673            ll: 'D MMM YYYY',
17674            lll: 'D MMM YYYY HH:mm',
17675            llll: 'ddd, D MMM YYYY HH:mm',
17676        },
17677        calendar: {
17678            sameDay: '[Hôm nay lúc] LT',
17679            nextDay: '[Ngày mai lúc] LT',
17680            nextWeek: 'dddd [tuần tới lúc] LT',
17681            lastDay: '[Hôm qua lúc] LT',
17682            lastWeek: 'dddd [tuần trước lúc] LT',
17683            sameElse: 'L',
17684        },
17685        relativeTime: {
17686            future: '%s tới',
17687            past: '%s trước',
17688            s: 'vài giây',
17689            ss: '%d giây',
17690            m: 'một phút',
17691            mm: '%d phút',
17692            h: 'một giờ',
17693            hh: '%d giờ',
17694            d: 'một ngày',
17695            dd: '%d ngày',
17696            w: 'một tuần',
17697            ww: '%d tuần',
17698            M: 'một tháng',
17699            MM: '%d tháng',
17700            y: 'một năm',
17701            yy: '%d năm',
17702        },
17703        dayOfMonthOrdinalParse: /\d{1,2}/,
17704        ordinal: function (number) {
17705            return number;
17706        },
17707        week: {
17708            dow: 1, // Monday is the first day of the week.
17709            doy: 4, // The week that contains Jan 4th is the first week of the year.
17710        },
17711    });
17712
17713    //! moment.js locale configuration
17714
17715    hooks.defineLocale('x-pseudo', {
17716        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(
17717            '_'
17718        ),
17719        monthsShort:
17720            'J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc'.
17720split(
17721                '_'
17722            ),
17723        monthsParseExact: true,
17724        weekdays:
17725            'S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý'.split(
17726                '_'
17727            ),
17728        weekdaysShort: 'S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát'.split('_'),
17729        weekdaysMin: 'S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá'.split('_'),
17730        weekdaysParseExact: true,
17731        longDateFormat: {
17732            LT: 'HH:mm',
17733            L: 'DD/MM/YYYY',
17734            LL: 'D MMMM YYYY',
17735            LLL: 'D MMMM YYYY HH:mm',
17736            LLLL: 'dddd, D MMMM YYYY HH:mm',
17737        },
17738        calendar: {
17739            sameDay: '[T~ódá~ý át] LT',
17740            nextDay: '[T~ómó~rró~w át] LT',
17741            nextWeek: 'dddd [át] LT',
17742            lastDay: '[Ý~ést~érdá~ý át] LT',
17743            lastWeek: '[L~ást] dddd [át] LT',
17744            sameElse: 'L',
17745        },
17746        relativeTime: {
17747            future: 'í~ñ %s',
17748            past: '%s á~gó',
17749            s: 'á ~féw ~sécó~ñds',
17750            ss: '%d s~écóñ~ds',
vendor: 16,384 bytes, lines 17751-18227
17751            m: 'á ~míñ~úté',
17752            mm: '%d m~íñú~tés',
17753            h: 'á~ñ hó~úr',
17754            hh: '%d h~óúrs',
17755            d: 'á ~dáý',
17756            dd: '%d d~áýs',
17757            M: 'á ~móñ~th',
17758            MM: '%d m~óñt~hs',
17759            y: 'á ~ýéár',
17760            yy: '%d ý~éárs',
17761        },
17762        dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/,
17763        ordinal: function (number) {
17764            var b = number % 10,
17765                output =
17766                    ~~((number % 100) / 10) === 1
17767                        ? 'th'
17768                        : b === 1
17769                        ? 'st'
17770                        : b === 2
17771                        ? 'nd'
17772                        : b === 3
17773                        ? 'rd'
17774                        : 'th';
17775            return number + output;
17776        },
17777        week: {
17778            dow: 1, // Monday is the first day of the week.
17779            doy: 4, // The week that contains Jan 4th is the first week of the year.
17780        },
17781    });
17782
17783    //! moment.js locale configuration
17784
17785    hooks.defineLocale('yo', {
17786        months: 'Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀'.split(
17787            '_'
17788        ),
17789        monthsShort: 'Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀'.split('_'),
17790        weekdays: 'Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta'.split('_'),
17791        weekdaysShort: 'Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá'.split('_'),
17792        weekdaysMin: 'Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb'.split('_'),
17793        longDateFormat: {
17794            LT: 'h:mm A',
17795            LTS: 'h:mm:ss A',
17796            L: 'DD/MM/YYYY',
17797            LL: 'D MMMM YYYY',
17798            LLL: 'D MMMM YYYY h:mm A',
17799            LLLL: 'dddd, D MMMM YYYY h:mm A',
17800        },
17801        calendar: {
17802            sameDay: '[Ònì ni] LT',
17803            nextDay: '[Ọ̀la ni] LT',
17804            nextWeek: "dddd [Ọsẹ̀ tón'bọ] [ni] LT",
17805            lastDay: '[Àna ni] LT',
17806            lastWeek: 'dddd [Ọsẹ̀ tólọ́] [ni] LT',
17807            sameElse: 'L',
17808        },
17809        relativeTime: {
17810            future: 'ní %s',
17811            past: '%s kọjá',
17812            s: 'ìsẹjú aayá die',
17813            ss: 'aayá %d',
17814            m: 'ìsẹjú kan',
17815            mm: 'ìsẹjú %d',
17816            h: 'wákati kan',
17817            hh: 'wákati %d',
17818            d: 'ọjọ́ kan',
17819            dd: 'ọjọ́ %d',
17820            M: 'osù kan',
17821            MM: 'osù %d',
17822            y: 'ọdún kan',
17823            yy: 'ọdún %d',
17824        },
17825        dayOfMonthOrdinalParse: /ọjọ́\s\d{1,2}/,
17826        ordinal: 'ọjọ́ %d',
17827        week: {
17828            dow: 1, // Monday is the first day of the week.
17829            doy: 4, // The week that contains Jan 4th is the first week of the year.
17830        },
17831    });
17832
17833    //! moment.js locale configuration
17834
17835    hooks.defineLocale('zh-cn', {
17836        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17837            '_'
17838        ),
17839        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17840            '_'
17841        ),
17842        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17843        weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
17844        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17845        longDateFormat: {
17846            LT: 'HH:mm',
17847            LTS: 'HH:mm:ss',
17848            L: 'YYYY/MM/DD',
17849            LL: 'YYYY年M月D日',
17850            LLL: 'YYYY年M月D日Ah点mm分',
17851            LLLL: 'YYYY年M月D日ddddAh点mm分',
17852            l: 'YYYY/M/D',
17853            ll: 'YYYY年M月D日',
17854            lll: 'YYYY年M月D日 HH:mm',
17855            llll: 'YYYY年M月D日dddd HH:mm',
17856        },
17857        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17858        meridiemHour: function (hour, meridiem) {
17859            if (hour === 12) {
17860                hour = 0;
17861            }
17862            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17863                return hour;
17864            } else if (meridiem === '下午' || meridiem === '晚上') {
17865                return hour + 12;
17866            } else {
17867                // '中午'
17868                return hour >= 11 ? hour : hour + 12;
17869            }
17870        },
17871        meridiem: function (hour, minute, isLower) {
17872            var hm = hour * 100 + minute;
17873            if (hm < 600) {
17874                return '凌晨';
17875            } else if (hm < 900) {
17876                return '早上';
17877            } else if (hm < 1130) {
17878                return '上午';
17879            } else if (hm < 1230) {
17880                return '中午';
17881            } else if (hm < 1800) {
17882                return '下午';
17883            } else {
17884                return '晚上';
17885            }
17886        },
17887        calendar: {
17888            sameDay: '[今天]LT',
17889            nextDay: '[明天]LT',
17890            nextWeek: function (now) {
17891                if (now.week() !== this.week()) {
17892                    return '[下]dddLT';
17893                } else {
17894                    return '[本]dddLT';
17895                }
17896            },
17897            lastDay: '[昨天]LT',
17898            lastWeek: function (now) {
17899                if (this.week() !== now.week()) {
17900                    return '[上]dddLT';
17901                } else {
17902                    return '[本]dddLT';
17903                }
17904            },
17905            sameElse: 'L',
17906        },
17907        dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
17908        ordinal: function (number, period) {
17909            switch (period) {
17910                case 'd':
17911                case 'D':
17912                case 'DDD':
17913                    return number + '日';
17914                case 'M':
17915                    return number + '月';
17916                case 'w':
17917                case 'W':
17918                    return number + '周';
17919                default:
17920                    return number;
17921            }
17922        },
17923        relativeTime: {
17924            future: '%s后',
17925            past: '%s前',
17926            s: '几秒',
17927            ss: '%d 秒',
17928            m: '1 分钟',
17929            mm: '%d 分钟',
17930            h: '1 小时',
17931            hh: '%d 小时',
17932            d: '1 天',
17933            dd: '%d 天',
17934            w: '1 周',
17935            ww: '%d 周',
17936            M: '1 个月',
17937            MM: '%d 个月',
17938            y: '1 å¹´',
17939            yy: '%d å¹´',
17940        },
17941        week: {
17942            // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
17943            dow: 1, // Monday is the first day of the week.
17944            doy: 4, // The week that contains Jan 4th is the first week of the year.
17945        },
17946    });
17947
17948    //! moment.js locale configuration
17949
17950    hooks.defineLocale('zh-hk', {
17951        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
17952            '_'
17953        ),
17954        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
17955            '_'
17956        ),
17957        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
17958        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
17959        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
17960        longDateFormat: {
17961            LT: 'HH:mm',
17962            LTS: 'HH:mm:ss',
17963            L: 'YYYY/MM/DD',
17964            LL: 'YYYY年M月D日',
17965            LLL: 'YYYY年M月D日 HH:mm',
17966            LLLL: 'YYYY年M月D日dddd HH:mm',
17967            l: 'YYYY/M/D',
17968            ll: 'YYYY年M月D日',
17969            lll: 'YYYY年M月D日 HH:mm',
17970            llll: 'YYYY年M月D日dddd HH:mm',
17971        },
17972        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
17973        meridiemHour: function (hour, meridiem) {
17974            if (hour === 12) {
17975                hour = 0;
17976            }
17977            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
17978                return hour;
17979            } else if (meridiem === '中午') {
17980                return hour >= 11 ? hour : hour + 12;
17981            } else if (meridiem === '下午' || meridiem === '晚上') {
17982                return hour + 12;
17983            }
17984        },
17985        meridiem: function (hour, minute, isLower) {
17986            var hm = hour * 100 + minute;
17987            if (hm < 600) {
17988                return '凌晨';
17989            } else if (hm < 900) {
17990                return '早上';
17991            } else if (hm < 1200) {
17992                return '上午';
17993            } else if (hm === 1200) {
17994                return '中午';
17995            } else if (hm < 1800) {
17996                return '下午';
17997            } else {
17998                return '晚上';
17999            }
18000        },
18001        calendar: {
18002            sameDay: '[今天]LT',
18003            nextDay: '[明天]LT',
18004            nextWeek: '[下]ddddLT',
18005            lastDay: '[昨天]LT',
18006            lastWeek: '[上]ddddLT',
18007            sameElse: 'L',
18008        },
18009        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18010        ordinal: function (number, period) {
18011            switch (period) {
18012                case 'd':
18013                case 'D':
18014                case 'DDD':
18015                    return number + '日';
18016                case 'M':
18017                    return number + '月';
18018                case 'w':
18019                case 'W':
18020                    return number + '週';
18021                default:
18022                    return number;
18023            }
18024        },
18025        relativeTime: {
18026            future: '%s後',
18027            past: '%s前',
18028            s: '幾秒',
18029            ss: '%d 秒',
18030            m: '1 分鐘',
18031            mm: '%d 分鐘',
18032            h: '1 小時',
18033            hh: '%d 小時',
18034            d: '1 天',
18035            dd: '%d 天',
18036            M: '1 個月',
18037            MM: '%d 個月',
18038            y: '1 å¹´',
18039            yy: '%d å¹´',
18040        },
18041    });
18042
18043    //! moment.js locale configuration
18044
18045    hooks.defineLocale('zh-mo', {
18046        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
18047            '_'
18048        ),
18049        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
18050            '_'
18051        ),
18052        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
18053        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
18054        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
18055        longDateFormat: {
18056            LT: 'HH:mm',
18057            LTS: 'HH:mm:ss',
18058            L: 'DD/MM/YYYY',
18059            LL: 'YYYY年M月D日',
18060            LLL: 'YYYY年M月D日 HH:mm',
18061            LLLL: 'YYYY年M月D日dddd HH:mm',
18062            l: 'D/M/YYYY',
18063            ll: 'YYYY年M月D日',
18064            lll: 'YYYY年M月D日 HH:mm',
18065            llll: 'YYYY年M月D日dddd HH:mm',
18066        },
18067        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
18068        meridiemHour: function (hour, meridiem) {
18069            if (hour === 12) {
18070                hour = 0;
18071            }
18072            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
18073                return hour;
18074            } else if (meridiem === '中午') {
18075                return hour >= 11 ? hour : hour + 12;
18076            } else if (meridiem === '下午' || meridiem === '晚上') {
18077                return hour + 12;
18078            }
18079        },
18080        meridiem: function (hour, minute, isLower) {
18081            var hm = hour * 100 + minute;
18082            if (hm < 600) {
18083                return '凌晨';
18084            } else if (hm < 900) {
18085                return '早上';
18086            } else if (hm < 1130) {
18087                return '上午';
18088            } else if (hm < 1230) {
18089                return '中午';
18090            } else if (hm < 1800) {
18091                return '下午';
18092            } else {
18093                return '晚上';
18094            }
18095        },
18096        calendar: {
18097            sameDay: '[今天] LT',
18098            nextDay: '[明天] LT',
18099            nextWeek: '[下]dddd LT',
18100            lastDay: '[昨天] LT',
18101            lastWeek: '[上]dddd LT',
18102            sameElse: 'L',
18103        },
18104        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18105        ordinal: function (number, period) {
18106            switch (period) {
18107                case 'd':
18108                case 'D':
18109                case 'DDD':
18110                    return number + '日';
18111                case 'M':
18112                    return number + '月';
18113                case 'w':
18114                case 'W':
18115                    return number + '週';
18116                default:
18117                    return number;
18118            }
18119        },
18120        relativeTime: {
18121            future: '%s內',
18122            past: '%s前',
18123            s: '幾秒',
18124            ss: '%d 秒',
18125            m: '1 分鐘',
18126            mm: '%d 分鐘',
18127            h: '1 小時',
18128            hh: '%d 小時',
18129            d: '1 天',
18130            dd: '%d 天',
18131            M: '1 個月',
18132            MM: '%d 個月',
18133            y: '1 å¹´',
18134            yy: '%d å¹´',
18135        },
18136    });
18137
18138    //! moment.js locale configuration
18139
18140    hooks.defineLocale('zh-tw', {
18141        months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
18142            '_'
18143        ),
18144        monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
18145            '_'
18146        ),
18147        weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
18148        weekdaysShort: '週日_週一_週二_週三_週四_週五_週六'.split('_'),
18149        weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
18150        longDateFormat: {
18151            LT: 'HH:mm',
18152            LTS: 'HH:mm:ss',
18153            L: 'YYYY/MM/DD',
18154            LL: 'YYYY年M月D日',
18155            LLL: 'YYYY年M月D日 HH:mm',
18156            LLLL: 'YYYY年M月D日dddd HH:mm',
18157            l: 'YYYY/M/D',
18158            ll: 'YYYY年M月D日',
18159            lll: 'YYYY年M月D日 HH:mm',
18160            llll: 'YYYY年M月D日dddd HH:mm',
18161        },
18162        meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
18163        meridiemHour: function (hour, meridiem) {
18164            if (hour === 12) {
18165                hour = 0;
18166            }
18167            if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
18168                return hour;
18169            } else if (meridiem === '中午') {
18170                return hour >= 11 ? hour : hour + 12;
18171            } else if (meridiem === '下午' || meridiem === '晚上') {
18172                return hour + 12;
18173            }
18174        },
18175        meridiem: function (hour, minute, isLower) {
18176            var hm = hour * 100 + minute;
18177            if (hm < 600) {
18178                return '凌晨';
18179            } else if (hm < 900) {
18180                return '早上';
18181            } else if (hm < 1130) {
18182                return '上午';
18183            } else if (hm < 1230) {
18184                return '中午';
18185            } else if (hm < 1800) {
18186                return '下午';
18187            } else {
18188                return '晚上';
18189            }
18190        },
18191        calendar: {
18192            sameDay: '[今天] LT',
18193            nextDay: '[明天] LT',
18194            nextWeek: '[下]dddd LT',
18195            lastDay: '[昨天] LT',
18196            lastWeek: '[上]dddd LT',
18197            sameElse: 'L',
18198        },
18199        dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/,
18200        ordinal: function (number, period) {
18201            switch (period) {
18202                case 'd':
18203                case 'D':
18204                case 'DDD':
18205                    return number + '日';
18206                case 'M':
18207                    return number + '月';
18208                case 'w':
18209                case 'W':
18210                    return number + '週';
18211                default:
18212                    return number;
18213            }
18214        },
18215        relativeTime: {
18216            future: '%s後',
18217            past: '%s前',
18218            s: '幾秒',
18219            ss: '%d 秒',
18220            m: '1 分鐘',
18221            mm: '%d 分鐘',
18222            h: '1 小時',
18223            hh: '%d 小時',
18224            d: '1 天',
18225            dd: '%d 天',
18226            M: '1 個月',
18227            M
18227M: '%d 個月',
18228            y: '1 å¹´',
18229            yy: '%d å¹´',
18230        },
18231    });
18232
18233    hooks.locale('en');
18234
18235    return hooks;
18236
18237})));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.